次のようなエンティティがあります。
@Entity
@Table(name = "MY_TABLE")
public class OrderPackage implements Serializable {
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "pId", column = @Column(name = "P_ID")),
@AttributeOverride(name = "prId", column = @Column(name = "PR_ID")),
@AttributeOverride(name = "pin", column = @Column(name = "PIN")),
@AttributeOverride(name = "Id", column = @Column(name = "MN_ID"))
})
private PackageId id;
@Column(name = "MEM_ID")
private Long memberId;
.....
.....
// more fields and getters and setters
}
PackageId.class
@Embeddable
public class PackageId implements Serializable {
private String pId;
private String prId;
private String pin;
private Long Id;
// getters and setters
}
Mytable には、クエリに一致する次のフィールドがあります。
SELECT c FROM OrderPackage c where <condition> order by c.prId;
次のような一致するレコード:
MN_ID MEM_ID P_ID PR_ID PIN ///some other fields
6217 402022795 A1000005361 B1000077615 (null)
6213 402022795 A1000005361 B1000037615 (null)
6218 402022795 A1000005361 B1000087615 (null)
6215 402022795 A1000005361 B1000057615 (null)
MN_ID はここで一意です。
カウント4を取得します。しかし、リスト内のすべての行がnullです。
何が原因でしょうか?
jBoss 4.2.x
JPA
Hibernate
ORACLE
アップデート:
これはまだですか?(複合キーのいずれかのフィールドに null 値がある場合、その行全体に対して null を返します)
http://thelittlefellow.blogspot.com/2011/07/hibernate-gethibernatetemplatefind.html