【问题标题】:Can JpaRepository take entity description from *.hbm.xml files?JpaRepository 可以从 *.hbm.xml 文件中获取实体描述吗?
【发布时间】:2016-04-14 05:01:31
【问题描述】:

我使用 hibernate、spring-boot-data-jpa 和 spring-boot-data-rest 编写应用程序。

我的实体类不包含任何注解,所有的orm映射都放在几个hbm.xml文件中。

class MyEntity {
    Long id;
    String name;
}

interface MyRepository extends JpaRepository<MyEntity, Long> {
}

Hibernate 工作正常,以及 JpaRepository 的所有方法,如 findOne。 JpaRepository提供的rest接口说的问题

"PersistentEntity does not have an identifier property!".

我发现将@Id 添加到 MyEntity 类可以解决问题。但是,我更喜欢在 hbm.xml 文件中定义 orm 映射,而不是使用注释。

如何配置 JpaRepository 以考虑 *.hbm.xml 文件?

【问题讨论】:

  • 如果某物是“JPA”,那么它永远不应该使用一些专有的东西。 JPA 允许“orm.xml”,所以“JpaRepository”应该支持它
  • 你是对的,但可能存在一种方法来为 rest 层提供必要的信息,而无需全部迁移到 orm.xml。
  • 你有没有试过把你的映射文件放到 src/main/resources 目录下?
  • 是的,我做到了。它忽略了。
  • Spring Data JPA 扫描实体以查找 @Id@EmbeddedId 字段,目前它不考虑 xml 配置。

标签: rest jpa spring-boot spring-data spring-data-jpa


【解决方案1】:

我在使用 hbm 文件的 JpaRepository 中遇到了类似的问题。如果资源文件夹中存在 hbm 文件,JpaRepository 可以接受这些文件。在资源文件夹中,创建任何文件夹,例如 resources/hbm 并将所有 hbm 文件移动到此文件夹。现在 Hbm 文件将被 JpaRepository 找到,并且不会修复托管类型错误。

【讨论】:

    猜你喜欢
    • 2010-11-17
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多