小编典典

是否应该从数据访问层(或接口)返回原始的Hibernate注释POJO?

java

我了解将数据层对象(DAO)分离到它们自己的层中,从而从DAO和Service层(JPA / Hibernate +
Spring)中
概述的服务和业务层中抽象出数据访问逻辑和数据源细节以及其他问题。我具有创建这些层的经验,但是我一直使用原始JDBC或类似的与数据库进行交互的较低级别的方法(例如Spring的SimpleJDBC),并且是Hibernate的新手。

我的问题是,以原始JDBC或其他方式实际在数据访问层处理结果集(或围绕它的薄包装)时,将数据粘贴到其中的结果POJO非常干净,不知道在哪里数据来自哪里,我从不担心将这些数据返回到服务层以及其他地方。但是似乎在Hibernate中,POJO批注中有很多特定于Hibernate
/数据结构的逻辑(诸如1到许多映射,延迟加载首选项等)。我感到不舒服,从我的DAO返回它们(或它们的Collection),直到我的服务层,并且很想让所有POJO都实现我传递回来的接口。这是好的做法,还是过于复杂?


阅读 196

收藏
2020-11-26

共1个答案

小编典典

注释具有将某些框架知识与Java对象耦合的一个缺点。这就是您没有单独的元数据定义所要付出的代价。但是,POJO仍然是POJO,从实际的角度来看,仅凭注释我就没有充分的理由使设计复杂化。

让我们考虑一下,如果您将使用XML映射,您是否还会担心?最有可能-不会。因此,支付罚款并继续前进;并且在不太可能的情况下,如果您要更改持久性框架-
您将继续删除这些注释。在所有情况下,它们都不应对DAO层之外的代码产生任何副作用。

只是我的2美分…

2020-11-26