• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何在春季启动jpa中使用外部ID作为主要ID?

java 来源:user2083529 3次浏览

有没有办法使用另一个实体的主键作为主键而不使用Embeddable或Id类。例如:如何在春季启动jpa中使用外部ID作为主要ID?

@Table(name = "employee") 
@Entity 
public class Employee implements Serializable { 

    @Id 
    @JoinColumn(name = "person_id") 
    private Person person; 

这里,Person是另一个实体,and person_id是主键。 在此先感谢


===========解决方案如下:

是的,如果这是唯一放慢参数构建的PK,你可以做这样的

public class Employee implements Serializable { 

    @Id 
    @Column(name="person_id") 
    private Long personId; 

    @JoinColumn(name = "person_id") 
    private Person person; 

但是,如果是这样的话是没有用做的,如果员工有相同的主键然后他们应该在同一个表中,不需要将它们分开在两个表中。

在我们所处理的含有人那么我们需要创建一个embedable键复合主键的情况下:

@Embeddable 
public class CompositeKey{ 

    @Column(name="person_id") 
    private Long personId; 
    ... // other attributes 
} 

public class Employee implements Serializable { 

    @EmbeddedId CompositeKey employeeId; 

    @JoinColumn(name = "person_id") 
    private Person person; 

另需注意,这里是你的关系的注释,你应该让你的人OneToOne注解参考:

@OneToOne 
@JoinColumn(name = "person_id") 
private Person person; 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)