该主题已经说明了有关ORM的关键角色之一
不要运行自己的ORM实施
但是,在这种情况下,我不确定如何正确实施我们的需求。
为了给您提供一些背景知识,当前我们将Spring Data JPA与Hibernate一起用作JPA实现,到目前为止一切都很好。
但是我们有单独的字段要自动“管理”,有点类似于从Hibernate审核审计(@CreatedBy
,@ModifiedBy
,...)。
在我们的情况下,例如实体所属的特定“实例”。
我们的应用程序不是框架而是应用程序,因此其他开发人员经常添加实体,我们希望保持其简单直观。
但是,我们不仅要在存储中自动设置它,还要将其添加为大多数“简单和频繁”查询的条件(请参阅我在Inject further query conditions / inject automatic entity field values when using Spring Data JPA Repositories处的相关问题)。
因此,我考虑过在EntityManager
及其Criteria API之上构建一个简单的图层,以至少支持简单的查询,例如
findById(xx)
findByStringAttribute(String attribute, String value)
findByIntegerAttribute(int attribute, String value)
我不确定这是否是一个广泛的问题,但是,您对此有何看法?这是一个合理的主意还是我应该跳过那个主意?