我是 Hibernate 的新手,必须支持使用 Hibernate 的现有应用程序它是一个纯报告应用程序 - 没有插入/更新/删除 - 只选择
我可以看到现有 POJO 对象在同一类中的多个字段中使用了 @Id 注释
我的理解是,对于复合主键 - 您需要使用 @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
注意 - 这里有两个字段有 @Id 注释
我很困惑为什么这个编译和工作?谢谢阿基拉