Hibernate/JPA 的 Java 配置?

标签 java hibernate jpa architecture

据我所知,配置JPA/Hibernate有两种方法:

  • 通过 hibernate.cfg.xml 等基于 XML 的配置。我不喜欢他的方法,因为 XML ...
  • 通过实体对象中的注释。比 XML 配置好得多,但它将我的实体耦合到 JPA。

由于我目前正在研究一种架构,其中域模型对数据库一无所知(“洋葱”架构),因此我正在寻找一种在不更改实体的情况下指定映射的方法。

当然,我可以创建单独的映射类,例如如果我有一个 Customer 域对象,请创建一个 JPA 注释的 CustomerEntity 并让存储库从一个存储库转换为另一个存储库。但这种方法感觉不太正确,因为 Customer 和 CustomerEntity 本质上是相同的。

所以看来我必须求助于 Hibernate XML 配置,但正如前面提到的,我不喜欢这种方法。 Spring有一个很好的配置方式:基于Java的配置。我想知道 Hibernate/JPA 配置是否有类似的东西,如果没有,为什么不呢?

如果以上都没有意义,我深表歉意,但欢迎任何帮助,即使它不能回答我的问题:-)

最佳答案

我从未听说过 Java EE 设计的洋葱理论。我确实听说过The Onion,但那是一份讽刺性时事通讯(如果是的话:-)。 Java EE 中的关注点分离通常表示为 MVC,即 Model View Controller 架构。您的 JSP 或 JSF 页面将是您的 View ,您的 @ManagedBean Controller 将是您的 Controller ,您的模型将保存您的实体。

该模型(JPA 所在的位置)通常可以进一步分为服务层持久层 和 EIS(企业信息系统)或数据库层。服务层将保存您的 EJB,并用 StatelessStatefullSingleton 进行注释,并将封装应用程序的业务逻辑。 持久层将具有由数据库存储的@Entity注释对象。

Java EE 使用 JSR 定义这些层,并带有某种数字。例如,Java 持久性 API (JPA) 是 JSR-220。测试是针对这些 JSR 开发的,如果供应商满足这些测试,那么他们的产品可以(或多或少)替换为另一个供应商的版本。

关于Hibernate/JPA 的 Java 配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787881/

相关文章:

java - Hibernate实体没有被持久化,但可以创建表和查询

java - 用于一对多映射的 Tapestry 组件

java - 来自同一实体的多个外键? (JPA hibernate )

java - 解释使用 Hibernate 映射自动递增复合 id 序列中的行为

java - 从其他用户获取图像

java - Windows 2003 上的 JAR 问题

java - 更改 textview 时实现图像更改

java - maven 属性不会被 -dParam.version 覆盖

java - Springframework创建bean时出错

Java JSON -Jackson- 嵌套元素