Tag: data access layer

JPA为什么要使用createNamedQuery

我正在使用Hibernate API将DAO层更改为使用纯JPA API实现。 看起来推荐的方法是使用实​​体管理器中的createNamedQuery。 命名查询存储在模型/实体类的注释中。 这对我来说没有意义。 为什么要在模型对象中定义JPA查询,但在DAO中使用它们。 从DAO本身使用createQuery并在DAO中定义查询甚至只是在DAO本身中定义命名查询是不是更有意义? 对于那些使用JPA API实现DAO层的人,您如何定义查询?

数据访问层的设计模式

我有一个使用数据库(MongoDB)来存储信息的应用程序。 在过去,我使用了一个充满静态方法的类来保存和检索数据,但我已经意识到这不是面向对象的,也不是未来的证据。 虽然我不太可能改变数据库,但我宁愿把一些东西与Mongo联系起来。 我还希望能够使用从数据库刷新缓存对象的选项来缓存结果,但这不是必需的,可以在其他地方完成。 我已经查看了数据访问对象,但它们似乎没有很好地定义,我找不到任何好的实现示例(使用Java或类似的语言)。 我还有很多一个关闭案例,例如找到用于完成制表符的用户名,这些用户名似乎不太适合,并且会使DAO变大和膨胀。 是否有任何设计模式可以帮助获取和保存对象而不会过于特定于数据库? 良好的实现示例将是有帮助的(最好是在Java中)。