Java 实施JpaRepository的最佳实践

Java 实施JpaRepository的最佳实践,java,database,spring,interface,spring-data-jpa,Java,Database,Spring,Interface,Spring Data Jpa,实施JpaRepository的最佳实践是什么 public interface XRepository implements JpaRepository<X, Long> { @Query(".....") X findByY(@Param("yId") Long yId); } 公共接口XRepository实现了JpaRepository{ @查询(“…”) X findByY(@Param(“yId”)Long yId); } 在实现XRepository的非

实施JpaRepository的最佳实践是什么

public interface XRepository implements JpaRepository<X, Long> {
   @Query(".....")
   X findByY(@Param("yId") Long yId);
}
公共接口XRepository实现了JpaRepository{ @查询(“…”) X findByY(@Param(“yId”)Long yId); } 在实现XRepository的非抽象类中是否存在跳过此方法实现的方法

public interface XRepository implements JpaRepository<X, Long> {
   @Query(".....")
   X findByY(@Param("yId") Long yId);
}

正如我所知,Java说没有。

您不需要实现这个接口。包括以下注释并扩展基本界面:

@Transactional(readOnly = true)
@Repository
例如:

@Transactional(readOnly = true)
@Repository
public interface CitizenRepository extends JpaRepository<Citizen, Integer> {

    @Query("SELECT c FROM Citizen c WHERE c.idGame=?1")
    Citizen findByGameId(int gameId);
}
@Transactional(readOnly=true)
@存储库
公共接口CitizenRepository扩展了JpaRepository{
@查询(“从公民c中选择c,其中c.idGame=?1”)
公民findByGameId(int gameId);
}

您不需要实现此接口。包括以下注释并扩展基本界面:

@Transactional(readOnly = true)
@Repository
例如:

@Transactional(readOnly = true)
@Repository
public interface CitizenRepository extends JpaRepository<Citizen, Integer> {

    @Query("SELECT c FROM Citizen c WHERE c.idGame=?1")
    Citizen findByGameId(int gameId);
}
@Transactional(readOnly=true)
@存储库
公共接口CitizenRepository扩展了JpaRepository{
@查询(“从公民c中选择c,其中c.idGame=?1”)
公民findByGameId(int gameId);
}

首先,如果您使用findBy。。。你不需要查询,它应该自动完成。您不需要实现任何东西,只需要用参数和返回值声明方法。也就是说,allXXXRepository与JPAAPI无关。这就是SpringDataJPA,一个完全不同的APIA,首先,如果您使用findBy。。。你不需要查询,它应该自动完成。您不需要实现任何东西,只需要用参数和返回值声明方法。也就是说,allXXXRepository与JPAAPI无关。这就是Spring Data JPA,一个完全不同的APIA,我的意思是,如果我不使用Java 9+并且需要私有方法,那么我需要实现它。我知道,我说的是specifix case,如果我需要私有方法。我的意思是,如果我不使用Java 9+并且需要私有方法,那么我需要实现它。我知道,我说的是specifix case,如果我需要私有方法。