我目前正在使用 Spring 数据存储库进行查询(多实体联接),然后返回 POJO 对象列表。这是一个好的做法吗?
例如,我见过从存储库中的查询方法返回 String 的代码。
import java.util.Optional;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.Repository;
import org.springframework.data.repository.query.Param;
import com.example.Sample
interface TodoRepository extends Repository<Todo, Long> {
@Query("SELECT new com.example.Sample(t.title, b.author) FROM Todo t JOIN t.genre b where t.id = :id")
List<Sample> findTitleById(@Param("id") Long id);
@Query("SELECT t.title FROM Todo t where t.id = :id")
List<String> findTitleById(@Param("id") Long id);
Todo findById(Long id);
Optional<Todo> findById(Long id);
}
那么这里第一种方法可以吗? 我知道它有效 - 但这是不好的做法吗?
最佳答案
存储库模式应该可以通过从方法名称自动生成许多标准查询来帮助您,但是如果您想创建更复杂的查询,您可以使用@Query
或写出方法完整。
这是非常好的做法,毕竟这就是 @Query
注释的用途。
关于java - 在 JPA 存储库中使用查询是否是正确的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51626520/