我正在创建 RESTful Web 服务。允许客户注册Company,然后在需要时进行更新。Company有Address关联。当用户请求Company更新时,它会发送Company对象 id 并Company涉及Address没有Addresses id 的对象。要更新Company对象,我使用休眠merge方法。它正确设置了新Company数据,但它创建了新Address行而不是更新它。
我怎么解决这个问题?
我可以Address通过company.getAddress()获取它的 id 并合并新来获取,Address但是当我这样做时,所有Company数据都被获取,我认为这不好。
public class Company implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "address_id")
private Address address;
}
更新
我还可以编写自定义查询
UPDATE address SET city='NEW YORK' FROM companies WHERE address.id = companies.address_id
但我希望它成为默认操作。如果您看到任何没有 id 的关联,请使用上述查询。