【发布时间】:2018-02-01 17:12:32
【问题描述】:
假设我有两个 JPA 实体 Fizz 和 Buzz 对应于数据库中的 fizzes 和 buzzes 表。
是什么阻止我写这样的东西:
public interface BuzzRepository extends CrudRepository<Buzz,Long> {
@Query("FROM Fizz WHERE id = :id")
public Fizz getFizzById(@Param('id') Long id);
}
意思是,当我可以定义自己的方法来返回Fizz、String 或我想要的任何其他东西时,泛型化CrudRepository<Buzz,Long> 的意义何在?
我之所以这么问,是因为我觉得我遗漏了一些关于如何使用 CrudRepositories 的基本意图。
【问题讨论】:
-
仅供参考 JPQL 查询以
SELECT {alias}开头。忽略这一点,便携性就被抛弃了 -
谢谢@DN1 (+1) 但是你所说的“便携性刚刚被抛弃”是什么意思?什么之间的可移植性?!
-
显然没有它就不再是 JPQL,所以如果有人曾经对不同的 JPA 提供者使用它,它就会失败。传播这些东西意味着其他人也复制它。又名不好的做法,几乎没有好处
标签: spring hibernate spring-data spring-data-jpa jpql