問候所有,我有類叫做產品和類供應商。供應商是產品的母公司。x的一個實例的JPA標識符已被更改
我在產品中定義屬性供應商時帶註釋ManyToOne。
創建產品A和供應商S1後,我先將S1與A關聯。然後,當我嘗試將A的供應商從S1更改爲S2時,我創建了第二個供應商S2。 JPA告訴我「供應商實例的標識符已從X更改爲Y」。
我不需要在這裏創建/更新供應商。我只想將產品A的供應商從一個換成另一個。
我可以知道可能出錯嗎?從服務
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@ManyToOne(cascade=CascadeType.ALL)
private Company supplier;
...
}
代碼:
Product productDB=this.findProductByProductIDCurrentUser(productForm.getId());
dozer.map(productForm, productDB);
if(productForm.getSupplier()!=null){
Company company =
companyRepository.findOne(productForm.getSupplier().getId());
if(company!=null){
Company supplier = new Company();
supplier.setId(productForm.getSupplier().getId());
productDB.setSupplier(supplier);
}
}
em.merge(productDB);
最好的問候, 約翰
爲什麼不張貼出一碼你到底在做什麼? – ujulu
根據您的要求 – John