如果您使用Spring Boot + Spring Data JPA,则可以通过使用属性将数据源(现在将其放入 hibernate.cfg.xml中
)配置到中。
application.properties
spring.datasource.*
这将自动为您创建一个实体管理器。如果需要使用查询,可以使用Spring Data JPA的存储库,例如:
public interface ArticleRepository extends JpaRepository<Article, Long> { @Query("select s from Article s where s.author like ?1 and s.title = ?2") List<Article> findByAuthorAndTitle(String author, String title);}
现在,您可以自动连接存储库并使用给定的查询,如下所示:
List<Article> articles = repository.findByAuthorAndTitle("Joe%", "Spring boot");
如果您确实需要自定义查询,则可以使用JPA中的Predicate / Criteria
API。Spring提供了这些谓词的包装版本,称为Specification。
为此,您可以
ArticleRepository使用另一个接口扩展您的接口
JpaSpecificationExecutor<Article>。这为您的存储库添加了一些额外的方法:
Specification<Article> spec = Specifications.<Article>where((root, query, cb) -> { return cb.and( cb.like(root.get("author"), "Joe%"), cb.equal(root.get("title"), "Spring boot"));});List<Article> articles = repository.findAll(spec);
这使您可以动态创建查询,尽管从您的问题来看,它似乎并不是您真正需要的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)