JPA JoinTable,其中两列引用父表中的同一列

时间:2013-10-18 10:56:07

标签: java jpa oracle11g

我正在使用Netbeans 7.4 RC2在Java SE 7应用程序中从数据库(Oracle 11g)创建实体类。表的结构定义如下:

Table Structure

这种级联定义的背后是限制用户在定义为父代码时删除代码。但它只是一个子代码,然后用户可以删除它。此外,CODE_ID可以具有0到1个父代码。如您所见,突出显示的列没有在CODE_RELATION表中定义父级。

当我使用向导从数据库生成实体类时,生成的类如下所示:

@Entity 
@Table(name = "CODES") 
public class Codes implements Serializable {    
    @Id    
    @Column(name = "CODE_ID", nullable = false, length = 30)
    private String codeId;    
    @Column(name = "CODE_DESC", length = 200)
    private String codeDesc;        
    @Column(name = "ACTIVE", nullable = false)
    private char active;    
    @JoinTable(name = "CODE_RELATION", joinColumns = {
        @JoinColumn(name = "CODE_ID", referencedColumnName = "CODE_ID", nullable = false)}, inverseJoinColumns = {
        @JoinColumn(name = "PARENT_CODE_ID", referencedColumnName = "CODE_ID", nullable = false)})
    @ManyToMany
    private List<Codes> codesList;
    @ManyToMany(mappedBy = "codesList")
    private List<Codes> codesList1;   

//Getter, Setter properties
}

在我看来有点混乱,因为我看不到生成的实体中任何地方引用的Cascade约束。该实体是否完全反映了我的表结构和约束?

请改善结构的任何建议。

P.S。我是java世界的新手。

0 个答案:

没有答案