我将开发一个使用RESTfull服务的应用程序,并且我将使用JPA / Hibernate作为ORM。 我已经使用了这两种技术,但不是在一个应用程序中。
由于客户端没有状态,因此在数据或服务层使用状态完整实体意味着更少。并且还有双向映射。
我认为JPA的CASCADE
选项不起作用,而不是在客户端进行更新时会破坏数据。
所以我在思考的是detach
对象,然后再向客户提供服务,
如果有更新(PUT
)请求,则只传递父对象并仅更新父对象。所以我想不能使用CASCADE
选项。
当它是删除(DELETE
)请求时,我必须手动执行CASCADE
操作。
我认为,在实体之间建立关系可能是一个问题。
有人能解释一下这种情况吗? 这种方法是否正确? 在这种情况下是否有最好的做法?
谢谢!
答案 0 :(得分:2)
请勿将您的商家实体混合到网络图层中。
我建议您将业务层与Web层分离,从而创建新的JAXB annotatted实体,以便从REST控制器返回。
如果你想让你的工作变得轻松,有很多库可以将1个bean复制到另一个bean。例如Apache BeanUtils.class。