[英]Java EE managed Container Collection operation not Propagating to DB
我将承认我最近确实很困惑,我需要退后一步,重新开始Java EE的基础知识。
在阅读了一些材料之后,我相信我可以对我的实体或集合进行一些操作,这将由Container或JPA转换为某些sql。 我尝试了一下,它按预期工作
public List<Manufacturer> addProductByContainerManaged(Integer manufacId, Product prod){
Manufacturer manu = this.manufacturerDao.find(manufacId);
manu.getProductList().add(prod);
prod.setManufacturerId(manu);
return this.manufacturerDao.findAll();
}
但是此操作未在数据库中添加任何项目,因此我想我缺少了一些东西。
public List<Manufacturer> addManufacturer(Manufacturer manufac){
List<Manufacturer> ret = this.manufacturerDao.findAll();
ret.add(manufac);
return ret;
}
第二个片段只是将Manufacturer manufac
对象添加到Java List
(请参阅: http : //docs.oracle.com/javase/7/docs/api/java/util/List.html )。 然后,您的方法将返回此列表。 只需在List
元素上调用add(...)
,即可将一个元素添加到列表中。
如果要将其添加到数据库中,显然必须调用您(或任何人)在ManufacturerDAO
上实现的add(...)
方法,以便将其保存在数据库中(如第一个代码片段中所示)。
如果您希望第二个片段起作用,那么您必须执行以下操作:
public List<Manufacturer> addManufacturer(Manufacturer manufac){
this.manufacturerDao.save(manufac); //I am not sure about your api. It could be something like this.
List<Manufacturer> ret = this.manufacturerDao.findAll();
return ret;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.