我有兩個類A和B,使得休眠:CascadeType.ALL應該嘗試創建對象,如果它不存在
class A{
@ManyToOne(cascade=CascadeType.ALL)
B b;
// other stuff
}
在B類
class B{
@Id
@Column(unique = true, nullable = false)
private Integer id;
// other stuff
}
每當一個新的對象A的創建我想創建對象B,如果它不存在。但是,如果它已經存在,那麼我不想創建它。在這種情況下,我只想在已經存在的B對象的A表中引用。現在,當我嘗試這樣做
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '10' for key 'PRIMARY'
這似乎是一個標準的任務,但我似乎無法找到關於計算器等。可有人請幫助解決任何我得到這個例外。謝謝 !!
編輯:爲了保存,我使用了Sring JPA存儲庫。我有A和B的存儲庫接口,最終擴展CrudReposioty
並使用其保存功能。下面是從org.springframework.data.repository.CrudRepository
/**
* Saves a given entity. Use the returned instance for further operations as the save operation might have changed the
* entity instance completely.
*
* @param entity
* @return the saved entity
*/
<S extends T> S save(S entity);
添加執行保存/更新並導致excetpion的方法 –
您可以使B中的Id成爲生成的值嗎? –
@MaciejKowalski這個id將會被提供,因此不會產生任何幫助。我想這與彈簧數據JPA有關,然後休眠 – varunkr