Hibernate复合主键查询
2014-04-16 10:03
447 查看
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查询时直接用对应的类索引属性查询,无需经过第三方生成类。
<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查询时直接用对应的类索引属性查询,无需经过第三方生成类。
相关文章推荐
- 解决使用Hibernate QBC复合查询含有联合主键映射关系实体的问题
- Hibernate主配置文件、映射配置文件以及复合主键查询
- hibernate复合主键查询主键不能为空的解决方案
- hibernate复合主键查询主键不能为空的解决方案
- Hibernate 复合主键(composite-id)查询
- [置顶] hibernate复合主键查询主键不能为空的解决方案
- 关于Hibernate的复合主键查询
- Hibernate复合主键查询
- hibernate中复合主键的使用方法
- hibernate3 注释生成复合主键或者嵌入式主键的方法及实例
- Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
- 关于Hibernate 复合主键 简单使用
- 【Hibernate】复合主键映射
- hibernate中Criteria实现复合条件查询
- Hibernate引用对象非主键属性的查询
- hibernate复合主键的两种方式(1)
- Hibernate第三篇【主配置文件、映射文件、复合主键映射】
- 两种方式配置Hibernate复合主键(修正)
- hibernate整合遗留数据库之处理主键(映射自然键之非复合自然键)
- hibernate映射复合主键-1