我正在使用 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世界的新手。