Hibernate HQL插入。。。使用参数进行选择

Hibernate HQL插入。。。使用参数进行选择,hibernate,jpa,hql,insert-select,Hibernate,Jpa,Hql,Insert Select,我需要执行批插入select语句: Query query = em .createQuery( "insert into EntityA (a,b,entity_field) select t.a, t.b, :entity_field from EntityA t where ..."); query.setParameter("entity_field ", entity); 字段实体\u字段不是实体a中的基元类型 我得到java.la

我需要执行批插入select语句:

Query query = em
        .createQuery(
        "insert into EntityA (a,b,entity_field) select t.a, t.b, 
         :entity_field from EntityA t where ...");
query.setParameter("entity_field ", entity);
字段实体\u字段不是实体a中的基元类型 我得到java.lang.IllegalArgumentException:org.hibernate.QueryException:select类型的数量与insert的类型不匹配


有什么方法可以做到这一点吗?

当您在选择字段中输入一个非原始类型时,它在所有属性中都是分解的。所以您有一个如下的查询:

INSERT INTO (a, b, entity_field)
SELECT t.a, t.b, entity_field.field1, entity_field.field2,...., entity_field.fieldN
在执行插入操作时,只放置实体的主键,因此只能使用基元类型


我希望,我是清楚的;)祝您愉快

不,它适用于原始类型。