Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring JPA存储库,超类为类型_Java_Spring_Jpa - Fatal编程技术网

Java Spring JPA存储库,超类为类型

Java Spring JPA存储库,超类为类型,java,spring,jpa,Java,Spring,Jpa,如果这个问题是重复的,我会提前道歉,但我尽了我的努力寻找这个问题的答案,但在任何地方都找不到 我的问题是,我想使用JPA存储库接口中声明的findAll()方法来检索某个表中的所有条目 实现JPA存储库的接口(请参见下面的代码)我拥有,类型为Class a Super Class(Person),用户、经理和管理员可对其进行扩展。这些子类使用不同的@Table参数进行注释,以使用户转到USERs表,等等 @Repository public interface UserRepository ex

如果这个问题是重复的,我会提前道歉,但我尽了我的努力寻找这个问题的答案,但在任何地方都找不到

我的问题是,我想使用JPA存储库接口中声明的
findAll()
方法来检索某个表中的所有条目

实现JPA存储库的接口(请参见下面的代码)我拥有,类型为Class a Super Class(Person),用户、经理和管理员可对其进行扩展。这些子类使用不同的@Table参数进行注释,以使用户转到USERs表,等等

@Repository
public interface UserRepository extends JpaRepository<Person, Integer> {
    Person deleteByUsernameAndEmail(String username, String email);
    Person deleteByEmail(String email);
    Person deleteByUsername(String username);
} 
@存储库
公共接口用户存储库扩展了JpaRepository{
Person DeleteByUserName和Mail(字符串用户名、字符串电子邮件);
通过电子邮件删除的人员(字符串电子邮件);
Person deleteByUsername(字符串用户名);
} 
现在我有几个问题:

  • 如何使我的
    findAll()
    方法返回某个表的所有条目(比如表用户)
  • 我是否创建了三个不同的接口,每个接口都有不同的类型类(用户、管理员、管理员),或者这是一种糟糕的做法

将每种类型划分为不同的接口是一种很好的做法。如果您需要对每个接口进行操作的逻辑,您可以创建自定义接口、这些接口的实现,并使用自定义接口扩展存储库接口。Spring可以自动识别实现。

非常感谢您的回复,并为我澄清了一些事情。这是一个我知道我可以选择的选项,但我想确认,每种类型有一个接口是一个很好的实践。非常感谢您的帮助@zlavalo也许这有助于: