spring-data-jpa - Spring结合派生查询方法和criteriabuilder
问题描述
假设我有以下存储库,我在其中使用派生查询方法
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByName(String name);
List<User> findByX(String x)
List<User> findByX(String y)
...
}
现在,我需要通过一些无法使用派生查询方法实现的复杂查询来查找用户。我可以使用@Query
注释,但我不想编写一堆类似 SQL 的查询。我宁愿使用CriteriaBuilder
.
我可以在一个类中实现接口并访问实体管理器,但这显然需要我实现定义的方法,以及定义的所有 spring 存储库方法。实施这些方法需要额外的努力。
public class UserRepositoryImpl implements UserRepository {
@PersistenceContext
private EntityManager em;
}
我可以创建一个独立的UserRepositoryImpl
,但随后我必须考虑我需要注入哪个。
public class UserRepositoryImpl {
@PersistenceContext
private EntityManager em;
}
是否可以在单个实例中使用派生查询方法和标准构建器?
解决方案
推荐阅读
- reactjs - RxJs debounce 在开玩笑测试期间立即发出事件
- azure-active-directory - 有没有办法在 B2C/B2B 场景中使用 Azure AD 提供完全自定义的登录屏幕
- hibernate - 在创建实体类时,为什么我们不能将 id 作为长类型?为什么我们需要把它当作长类型?
- spring-boot - JPA 外键未在 @OneToOne 中设置
- php - DB:选择 Laravel 5 如何将查询结果传递给我的帖子
- android - 我应该为数据库中的每个表创建一个继承 SQLiteOpenHelper 的类吗?
- python - 为什么表达式(假或假或假或真)等于假?
- java - 升级到 Gradle 5.2.1 不会生成 *-all.jar
- mongodb - Mongo - 重复文档的 ObjectId 是否不同?
- python - 如何防止将字符串分解为字符列表?