我在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
答案 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;