使用JPA存储库处理抽象实体的正确方法?

时间:2013-03-19 09:49:35

标签: hibernate jpa spring-data-jpa

我有一堆具有完全相同列的表,比方说,ID,NAME,DESCRIPTION。由于遗留原因,我无法更改这些表格。

在我的模型中,我使用@MappedSuperclass注释为这些创建了一个抽象超类。然后我为它创建了一个存储库:

JpaRepository<MyAbstractEntity, Long>

但这似乎不适用于JPARepository(或者更确切地说是Hibernate?),因为它不是真正的实体。

那么处理这种层次结构的首选方法是什么?

2 个答案:

答案 0 :(得分:3)

我假设您使用Hibernate作为持久性提供程序?它有a bug,在被要求提供映射的超类时没有返回相关的JPA元模型类型。这已在Hibernate 4.1.6中修复,因此升级到该版本应该可以解决问题。

答案 1 :(得分:1)

问题是repository如何根据抽象类知道要查询哪个表? 对我来说,最好的方法是根据具体的类创建所需的存储库。