Hibernate逆向生成无主键的数据表时产生的hbm如:
<class name="class_name" table="table_name" schema="schema_name">
<composite-id name="id" class="class_name">
<key-property name="property_name" type="type_name">
<column name="column_name" length="20" />
</key-property>
</composite-id>
</class>
Hibernate不允许无PrimaryKey的ORM,因此会独立生成此对象为ORM的PrimaryKey
当需要查询此表,如果此对象中有任意一个字段为NULL,则整条记录都为NULL
因为Hibenrate约束主键不能为空。
解决办法:可将composite-id标签里可能会为空的字段提取到composite-id外,
将数据表所对应的POJO添加字段,字段为提取到composite-id标签外的字段属性
HQL查询时直接用对应的类索引属性查询,无需经过第三方生成类。
编辑特别推荐:
使用Synchronized块同步变量
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。