在Spring Data JPA中处理实体继承的最佳方法
2022-08-31 21:01:24
我有三个 JPA 实体类,具有以下层次结构:A
B
C
A
|
+---+---+
| |
C B
那是:
@Entity
@Inheritance
public abstract class A { /* ... */ }
@Entity
public class B extends A { /* ... */ }
@Entity
public class C extends A { /* ... */ }
使用Spring Data JPA,为这些实体编写存储库类的最佳方法是什么?
我知道我可以写这些:
public interface ARespository extends CrudRepository<A, Long> { }
public interface BRespository extends CrudRepository<B, Long> { }
public interface CRespository extends CrudRepository<C, Long> { }
但是如果在类中有一个字段,并且我在:A
name
ARepository
public A findByName(String name);
我也必须在其他两个存储库中编写这样的方法,这有点烦人。有没有更好的方法来处理这种情况?
我想说的另一点是,它应该是一个只读的存储库(即扩展类),而其他两个存储库应该公开所有CRUD操作。ARespository
Repository
让我知道可能的解决方案。