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
}

生成されたエンティティのどこにも参照されているカスケード制約が表示されないため、少し混乱しているように思えます。このエンティティはテーブルの構造と制約を正確に反映していますか?

構造を改善するための提案をお願いします。

PS私はJavaの世界が初めてです。

4

0 に答える 0