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查询时直接用对应的类索引属性查询,无需经过第三方生成类。 |