11

私は 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 アノテーションがあります

なぜこれがコンパイルされて動作するのか混乱していますか? ありがとうアキラ

4

1 に答える 1