Java Hibernate/JPA 配置?

Java config for Hibernate/JPA?

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

由于我目前正在研究域模型对数据库一无所知的体系结构('Onion' 体系结构),因此我正在寻找一种无需更改实体即可指定映射的方法。

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

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

如果上述 none 有道理,我深表歉意,但欢迎任何帮助,即使它没有回答我的问题:-)

我从未听说过 Onion Theory 的 Java EE 设计。我确实听说过 The Onion,但那是一份讽刺通讯(如果是这样的话:-)。 Java EE 中的关注点分离我通常表示为 MVC 或模型视图控制器架构。您的 JSP 或 JSF 页面将是您的视图,您的 @ManagedBean 控制器将是您的控制器,您的模型将包含您的实体。

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

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

显然有一个名为 Fluent NHibernate 的 C# 软件,它正是我想要的。

很遗憾,Java似乎没有"Fluent Hibernate"。

GitHub 上有一个 fluent-hibernate 项目,但那个项目似乎是关于流利地编写 HQL 查询,而不是映射配置。