我正在使用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约束。该实体是否完全反映了我的表结构和约束?
请改善结构的任何建议。
P.S。我是java世界的新手。