gpt4 book ai didi

java - 有没有办法在没有 DTO 的情况下将 Hibernate 实体公开为 RESTful 资源?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:02:51 24 4
gpt4 key购买 nike

我正在开发一个简单的网络应用程序,它将域模型公开为 RESTful 资源。我计划使用 JPA2(Hibernate) 和 SpringMVC REST 支持。

在将 Hibernate 实体编码为 XML/JSON 时,如果实体被分离,它将为惰性子关联抛出 LazyLoadingException。如果实体仍然附加到 Hibernate Session,它几乎会加载整个数据库。

我尝试使用 Dozer CustomFieldMapper 来确定该属性是否为未加载的惰性 Hibernate Collection,然后返回 NULL。

但如果我们有双向关联,Hibernate 会急切地加载多对 端,Dozer 将尝试复制属性,这将以无限循环结束,从而导致 StackOverflow 错误。

我知道解决此问题的唯一解决方法是使用 DTO 并将所需的属性仅复制到干净的 POJO (DTO) 中,然后编码为 XML/JSON。但是对于复杂的领域模型,手动复制属性是非常痛苦的。

是否有任何其他干净/更简单的方法来(取消)编码 Hibernate 实体?

最佳答案

我可能听起来太保守了,但我认为使用 DTO 仍然是个好主意。

映射的复杂性与资源 API 的粒度成正比,换句话说,越粗越复杂。

关于java - 有没有办法在没有 DTO 的情况下将 Hibernate 实体公开为 RESTful 资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14135547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com