0

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

表结构

这种级联定义的背后是限制用户删除定义为父代码的代码。但它只是一个子代码,然后用户可以删除它。此外,一个 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 约束。该实体是否准确反映了我的表结构和约束?

请有任何改进结构的建议。

PS我是Java世界的新手。

4

0 回答 0