欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hibernate父子类同时映射一张表的问题

程序员文章站 2022-03-05 12:34:17
...

今天在开发时发现一个问题

在查询一张表的 count 的时候,居然返回了2个值,Hibernate报错说不止一个结果。

 

大吃一惊,不过是一个单表查询而已,出现了这样的问题。后来查找资料和项目发现,项目里用父类A,子类B。

 

A和B都映射了同一张表。

 

这样查询就出问题了,如果查询父类,将返回2个结果集,所以对于unique方式的查询,一律报错。
但是有意思的是,如果查询子类,则不会有问题。

 

解决方法,在映射xml中就是配置文件中polymorphism属性的设置问题。polymorphism默认值为 implicit 是隐式的实现多态。这种方式会导致查询超类的时候,会把子类的结果集也返回回来。

所以在父子类的映射文件中,将polymorphism属性设置为explicit。也就是显示的实现多态。

问题解决

相关标签: j2ee hibernate