2016-07-11 24 views
0
@Entity 
public class A { 
@column("ID") 
private Long id; 
} 

@Entity 
public class B { 
@column("ID") 
private Long id; 
} 

@Entity 
public class C { 
@column("ID") 
private Long id; 

@column("A_ID") 
private Long aID; 

@column("B_ID") 
private Long bID; 
} 

在C實體下列插入是可能的如何在Spring數據JPA中爲以下場景創建實體關係?

ID A_ID B_ID 
1 1  1 
2 2  1 
3 3  1 
4 1  2 
5 2  2 
6 3  2 

在上述情況下,我想獲得父實體(A或B)從兒童實體(C)

例如

C c=crepository.findByID(6); 
A a=c.getA(); 
B b=c.getB(); 

如何在上面的實體中創建關係? 我希望它是可以使用Spring數據JPA實現的。

+0

你試過用'了'這是階級A'的''更換和aID'用'OneToOne'標註呢? (和'B'的相同程序) – Apostolos

+0

類A和B只有id列? – Apostolos

回答

0

事情是這樣的借力@OneToOne註釋應該這樣做:

@Entity 
public class A { 
    @Column("ID") 
    private Long id; 

    //other columns, getters, and setters 
} 

@Entity 
public class B { 
    @Column("ID") 
    private Long id; 

    //other columns, getters, and setters 
} 

@Entity 
public class C { 
    @column("ID") 
    private Long id; 

    @OneToOne 
    @JoinColumn(name = "A_ID", referencedColumnName = "ID") 
    private A a; 

    @OneToOne 
    @JoinColumn(name = "B_ID", referencedColumnName = "ID") 
    private B b; 

    //other columns, getters, and setters 
}