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

K. *_*ddy 6 java rest hibernate jpa-2.0

我正在开发一个简单的webapp,它将域模型公开为RESTful资源.我打算使用JPA2(Hibernate)和SpringMVC REST支持.

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

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

但是,如果我们有双向关联Hibernate的热切加载许多-TO- 一个侧面和推土机将尝试复制,这将在无限循环最终导致StackOverflow的错误性质.

我知道要解决这个问题的唯一工作是使用DTO并将所需的属性仅复制到干净的POJO(DTO)中,然后再编组为XML/JSON.但复杂的域模型手动复制属性是非常痛苦的.

有没有其他干净/更简单的方法(un)编组Hibernate实体?

And*_*rup 3

我在 GWT 应用程序中来回传递 Hibernate VO 时遇到了类似的问题,在一些项目中使用 Dozer 取得了良好的效果,而在其他项目中使用了本文中描述的方法该方法在编组之前基本上使 hibernate 代理为 null。

希望对您有帮助,