hibernate中Cannot use identity column key generation with <union-subclass> mapping for错误

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
%%%% Error Creating SessionFactory %%%%
org.hibernate.MappingException: Cannot use identity column key generation with <union-subclass> mapping for: cn.itcast.hibernate.domain.Skiller
at org.hibernate.persister.entity.UnionSubclassEntityPersister.<init>(UnionSubclassEntityPersister.java:67)
at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:61)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:231)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1313)
at cn.itcast.hibernate.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:31)
at cn.itcast.hibernate.Many2One.add(Many2One.java:93)
at cn.itcast.hibernate.Many2One.main(Many2One.java:25)
%%%% Error Creating SessionFactory %%%%
org.hibernate.InvalidMappingException: Could not parse mapping document from resource cn/itcast/hibernate/domain/Employee.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:588)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1606)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1574)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1553)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1527)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1447)
at cn.itcast.hibernate.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:69)
at cn.itcast.hibernate.HibernateSessionFactory.getSession(HibernateSessionFactory.java:53)
at cn.itcast.hibernate.Many2One.add(Many2One.java:93)
at cn.itcast.hibernate.Many2One.main(Many2One.java:25)
Caused by: org.hibernate.DuplicateMappingException: Duplicate table mapping skiller
at org.hibernate.cfg.Mappings.addDenormalizedTable(Mappings.java:192)
at org.hibernate.cfg.HbmBinder.bindUnionSubclass(HbmBinder.java:784)
at org.hibernate.cfg.HbmBinder.handleUnionSubclass(HbmBinder.java:2201)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2114)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:2038)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:359)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
at org.hibernate.cfg.Configuration.add(Configuration.java:688)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:523)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:585)
... 9 more
Exception in thread "main" java.lang.NullPointerException
at cn.itcast.hibernate.Many2One.add(Many2One.java:94)

at cn.itcast.hibernate.Many2One.main(Many2One.java:25)

错误:不能使用identity这种主键生成器策略

原因:该例子一个有三个类,三张表,如果使用identity主键生成器策略,会使主键id值可能相同,在查询时,无法保证值的唯一,即无法正确查询

改正:可以将主键生成器策略改为hilo

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值