У меня есть этот класс сущностей, первый, который я создал для тестирования Hibernate, он использует последовательность оракула для заполнения поля идентификатора:
@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 Companies = new Companies("qqq","FR");
session.save(Companies);
transaction.commit();
Но каждый раз удаляются ВСЕ записи в таблице COMPANIES в Oracle.
Итак, когда я впервые попробовал свои данные, они были заполнены.со многими строками и с использованием этих первичных ключей в других таблицах, и он смог удалить эти строки в компаниях, а не в других таблицах ...
Таким образом, это означает, что Hibernate фактически отключил все мои ограничения, очистивтаблицу, и добавил новую строку из моего тестового блока ...
Что я делаю не так?
Я не хочу, чтобы hibernate связывался с моими данными, если я не скажу это сделать...