a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0

[专业语言] JAVA认证:Hibernate复合主键查询

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
Hibernate逆向生成无主键的数据表时产生的hbm如:   
( x5 `* r; `4 \/ {' A6 c1 c# b  
- i( }8 O) N( ]+ ^0 `  
* F" C9 B+ Z  j4 [& T* T0 D  ) |3 b# Z/ F$ Y( M" t
  ) K& j4 t, o( K6 l+ h% d2 Y
  
7 V3 M1 d6 Q5 x  
% X6 ~4 m, ]7 C9 u- T  Hibernate不允许无PrimaryKey的ORM,因此会独立生成此对象为ORM的PrimaryKey
) y- r' N; t6 R( O  Q; h  当需要查询此表,如果此对象中有任意一个字段为NULL,则整条记录都为NULL) l. \8 @/ L2 Q4 O' c9 \
  因为Hibenrate约束主键不能为空。
; G, q5 {3 ?& n9 p' N  解决办法:可将composite-id标签里可能会为空的字段提取到composite-id外,* {( ?9 D& g# J
  将数据表所对应的POJO添加字段,字段为提取到composite-id标签外的字段属性
$ }& }) x& R; ]1 r8 _, g7 O+ _; D  HQL查询时直接用对应的类索引属性查询,无需经过第三方生成类。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-7 15:11 , Processed in 0.241862 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表