Hibernate逆向生成无主键的数据表时产生的hbm如
<class name=class_name table=table_name schema=schema_name>
<compositeid name=id class=class_name>
<keyproperty name=property_name type=type_name>
<column name=column_name length= />
</keyproperty>
</compositeid>
</class>
Hibernate不允许无PrimaryKey的ORM因此会独立生成此对象为ORM的PrimaryKey
当需要查询此表如果此对象中有任意一个字段为NULL则整条记录都为NULL
因为Hibenrate约束主键不能为空
解决办法可将compositeid标签里可能会为空的字段提取到compositeid外
将数据表所对应的POJO添加字段字段为提取到compositeid标签外的字段属性
HQL查询时直接用对应的类索引属性查询无需经过第三方生成类