2
我有這樣的實體類,我第一個內置測試休眠,它使用Oracle序列,填補了ID字段:休眠插入前刪除所有行
@Entity
@Table(name="COMPANIES")
public class Companies {
private Integer cmpid;
private String cmpname;
private String cmpcountry;
public Companies() {
}
public Companies(String name, String country) {
this.cmpname = name;
this.cmpcountry = country;
}
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "gen_CMP")
@SequenceGenerator(name="gen_CMP", sequenceName = "CMP_ID_SEQ")
@Column(name="CMP_ID", nullable=false)
public Integer getCmpId() {
return this.cmpid;
}
public void setCmpId(Integer cmpid) {
this.cmpid = cmpid;
}
@Column(name="CMP_NAME", nullable=true)
public String getCmpName() {
return this.cmpname;
}
public void setCmpName(String cmpname) {
this.cmpname = cmpname;
}
@Column(name="CMP_COUNTRY", nullable=true)
public String getCmpCountry() {
return this.cmpcountry;
}
public void setCmpCountry(String cmpcountry) {
this.cmpcountry = cmpcountry;
}
}
然後在我的測試單位,我創建一個公司對象,然後將它保存在會話中:
Companies Companies = new Companies("qqq","FR");
session.save(Companies);
transaction.commit();
但每次都刪除Oracle中COMPANIES表中的所有記錄。
因此,我第一次嘗試我的數據時,它充滿了許多行,並且在其他表中使用了此主鍵,並且它能夠刪除公司中的那些行而不是其他表中的行......
因此,這意味着實際的Hibernate禁用我的所有約束,空表,並從我的測試單元中添加新的行...
我在做什麼錯?
我不想冬眠與我的數據混亂,除非我告訴它這樣做...
請格式化您的代碼。 – 2010-09-12 11:47:40