Hibernate @CollectionId有错误:HHH000346:托管刷新期间出错

时间:2015-09-15 20:59:52

标签: java hibernate

我在hibernate中编写了一些代码。在这段代码中,我想将一个集合作为新表插入到数据库中,这段代码创建表并映射foreign key但是无法在表中插入数据并抛出例外。 这是我的hibernate代码:

@ElementCollection()
@JoinTable(name="user_address",
joinColumns=@JoinColumn(name="userId")
)
@GenericGenerator(name = "hilo-gen", strategy ="hilo")
@CollectionId(columns = { @Column(name="address_id") }, generator ="hilo-gen", type =@Type(type="long"))

这是一个错误:

org.hibernate.internal.SessionImpl$5 mapManagedFlushFailure
ERROR: HHH000346: Error during managed flush [org.hibernate.id.IdentifierGeneratorHelper$2 cannot be cast to java.lang.Long]
Exception in thread "main" java.lang.ClassCastException: org.hibernate.id.IdentifierGeneratorHelper$2 cannot be cast to java.lang.Long

2 个答案:

答案 0 :(得分:1)

尝试使用不同的发电机策略 @GenericGenerator(name = "inc-gen", strategy ="increment")应该可以正常工作。

了解更多 - > 5.1.2.2.1. Various additional generators.

答案 1 :(得分:0)

在hibernate.cfg.xml中添加此文件     错误

在数据库中执行以下脚本     SET FOREIGN_KEY_CHECKS = 0;     SET GLOBAL FOREIGN_KEY_CHECKS = 0;