0
我正在使用Hibernate 4.1.0.Final和hibernate-jpa-2.0-api。我在使用實體管理器更新具有OneToMany關係的實體時遇到問題。下面是實體:JPA實體管理器沒有正確更新OneToMany關係的字段
@GenericGenerator(name = "uuid-strategy", strategy = "uuid.hex")
@Entity
@Table(name = "cb_organization", uniqueConstraints = {@UniqueConstraint(columnNames={"organization_id"})})
public class Organization implements Serializable
{
…
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
@JoinTable(name = "cb_organization_address",
joinColumns = @JoinColumn(name = "organization_id"),
inverseJoinColumns = @JoinColumn(name = "address_id"))
private List<Address> addresses;
當我嘗試和更新一個新的一對多名單的實體(使用實體管理器的合併方法),該地址沒有得到保存。我創建列表,像這樣...
List<Address> addresses = new ArrayList<Address>();
addresses.add(address);
...
org.setAddresses(addresses);
m_orgDao.save(org);
,這裏是相關的DAO代碼...
@Autowired
private EntityManager entityManager;
@Override
public Organization save(Organization organization)
{
if(StringUtils.isEmpty(organization.getId()))
{
entityManager.persist(organization);
}
else
{
organization = entityManager.merge(organization);
}
return organization;
}
返回的組織在其所有的字段都是空的地址。我可以對我的實體經理和實體做不同的處理,以確保數據得到正確保存。