【发布时间】: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