私は Hibernate の初心者で、Hibernate を使用する既存のアプリケーションをサポートする必要があります。これは純粋なレポート アプリケーションです - 挿入 / 更新 / 削除なし - 選択のみ
同じクラスの複数のフィールドで @Id アノテーションが使用されている既存の POJO オブジェクトを確認できます
私の理解では、複合主キーの場合は @Embeddable と @EmbeddedId を使用する必要があります
ただし、これは私のクラスでは定義されておらず、奇妙なことは、コードがコンパイルされて正常に実行されることです
これが私のコードの例です:
package com.xyz.vo;
import java.io.Serializable;
import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;
@Entity(name="com.xyz.vo.Emp")
@Table(name = "TEmployee")
public class Emp implements Serializable {
private java.lang.Integer empId;
@Id
@Column(name = "EMP_ID")
public java.lang.Integer getEmpId(){
return this.empId;
}
public void setEmpId(java.lang.Integer empId){
this.empId=empId;
}
private java.lang.Integer empAge;
@Id
@Column(name = "EMP_AGE")
public java.lang.Integer getEmpAge(){
return this.empAge;
}
public void setEmpAge(java.lang.Integer empAge){
this.empAge=empAge;
}
private String empName;
@Column(name = "EMP_NAME")
public String getEmpName(){
return this.empName;
}
public void setEmpName(String empName){
this.empName=empName;
}
pojo のさらに多くのフィールド - @Id が定義されていないフィールド
注 - ここでは、2 つのフィールドに @Id アノテーションがあります
なぜこれがコンパイルされて動作するのか混乱していますか? ありがとうアキラ