我将开始一个使用Spring和Hibernate管理的REST应用程序项目。
我知道Spring允许您从HTTP Request(带有@Consumes(JSON)注释)中获取Java对象。如果此Java对象也是Hibernate实体,是否有冲突?嵌套对象是否起作用(如@ManyToOne关系)?
@Consumes(JSON)
@ManyToOne
我们正在使用这种方法来简化设计并摆脱许多dto(我们滥用它们太多了)。基本上,它对我们有用。
但是,在我们的REST模型中,我们试图不公开对象的其他关系,因为您总是可以创建另一个REST资源来访问它们。
所以我们只要把@JsonIgnore注释关系的映射,比如@OneToMany或@ManyToOne使他们短暂的。
@JsonIgnore
@OneToMany
我看到的另一个问题是,如果您仍然想返回这些关系,则必须Join.FETCH对它们使用策略或将事务管理上移,以便在将响应序列化为JSON(在View Pattern中打开会话)时,事务仍然存在。我认为这两种解决方案都不太好。
Join.FETCH