gpt4 book ai didi

java - 为什么这个 HQL 无效?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:41 25 4
gpt4 key购买 nike

错误是:错误:org.hibernate.QueryException:只能使用序列或插入后样式生成器生成 ID 作为批量插入的一部分

总部:

insert into CategoryProduct (category, product) 
select c, p from Category c, Product p
where c.id = 252 and p.id = 554

categoryProduct 是一个嵌入了 Id 的实体:

@EmbeddedId
protected CategoryProductPK categoryProductPK;

提前致谢!

最佳答案

异常似乎是从org.hibernate.hql.ast.HqlSqlWalker 抛出的在:

IdentifierGenerator generator = persister.getIdentifierGenerator();
if ( !supportsIdGenWithBulkInsertion( generator ) ) {
throw new QueryException( "can only generate ids as part of bulk insert with either sequence or post-insert style generators" );
}

决定是在

public static boolean supportsIdGenWithBulkInsertion(IdentifierGenerator generator) {
return SequenceGenerator.class.isAssignableFrom( generator.getClass() )
|| PostInsertIdentifierGenerator.class.isAssignableFrom( generator.getClass() );
}

因此,Hibernate 似乎希望您使用的生成器是 SequenceGeneratorPostInsertIdentifierGenerator 的子类型。你用的是什么发电机?

关于java - 为什么这个 HQL 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6220594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com