我正在使用角度js,spring mvc和spring jpa数据处理web应用程序。 我想知道是否有类似的标准和detachedcriteria(休眠)来构建与春季jpa数据的高级查询。春季数据标准
春季数据标准
回答
是的,你可以使用Specifications,它基本上使用Criteria API(显然,因为Spring Data JPA只是JPA的一个包装)。
保存引用2个其他对象的对象的最佳方式是什么?如何只用一个查询来做到这一点。 (不需要从数据库中获取它们)。 – housseminfo
你应该问这是一个新问题(并接受我的答案,如果它可以帮助你解决第一个问题)。 – dunni
你也应该阅读http://stackoverflow.com/help,尤其是“询问”部分。 – dunni
没有什么阻止你还在使用标准
@Repository
public interface FooRepository extends JpaRepository<Foo, Long>, FooRepositoryCustom {
}
interface FooRepositoryCustom {
public List<Foo> findByBar(Bar bar);
}
class FooRepositoryImpl implements FooRepositoryCustom {
@PersistenceContext
protected EntityManager em;
@Transactional(readOnly = true)
public List<Foo> findByBar(Bar bar) {
Criteria crit = em.unwrap(Session.class).createCriteria(Foo.class);
crit.add(Restrictions.eq("name", bar.getName()));
...
crit.setResultTransformer(DetachedCriteria.DISTINCT_ROOT_ENTITY);
List<Foo> foos = crit.list();
return foos;
}
}
您可以使用标准使用Spring的数据,你不需要自定义库,你可以使用JpaSpecificationExecutor,这里一个例子:
你的资料库:
@Repository("yourRepository")
public interface YourRepository extends JpaRepository, JpaSpecificationExecutor
{
}
您服务
@Override
public List<YourModel> yourDataModel getAllEntitiesByAttr(String attrValue){
List<YourModel> yourDataModel = null;
try {
Specification specification=getAndSpecByAttribute("attribute",attrValue);
List list = userRepository.findAll(specification);
yourDataModel =orikaMapper.mapAsList(list, YourModel.class);
} catch (Exception e) {
throw e;
}
return yourDataModel;
}
private Specification getAndSpecByAttribute(String attribute, String valueAttribute){
return new Specification() {
@Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {
Path path = root.get(attribute);
return cb.equal(path, valueAttribute);
};
};
}
这就够了。
- 1. 如何添加多条件和条件春季数据标准
- 2. 春数据JPA标准像
- 3. 春季数据neo4j 3.0.0 - 标签支持
- 4. 春季MVC春季:绑定标签
- 5. 春季数据和junit
- 6. 春季数据Solr与Querydsl
- 7. 春季分页数据
- 8. 春季数据JPA其余
- 9. 如何在春季数据
- 10. 春季和春季数据JPA不协同工作
- 11. 春季数据并发数据访问
- 12. 春季引导指标与春季云指标
- 13. 春季选择标签
- 14. 春季豆标记错误
- 15. 基于标准的授权与春季安全检查?
- 16. 春季Mongo标准查询两次相同的字段
- 17. 春季Mongo标准问题与运营商
- 18. 春季
- 19. 春季
- 20. 春季
- 21. 春季
- 22. 春季
- 23. 春季
- 24. 上查询春季数据错误
- 25. 春季jndi数据源设置
- 26. 没有数据库的春季启动
- 27. 春季数据CrudRepository作为方法豆
- 28. 春季数据CrudRepository findBy关系
- 29. 春季数据最后一笔记录
- 30. 春季数据休息 - 缓存
[Dynamic spring data jpa repository query with any AND clauses]的可能重复(http://stackoverflow.com/questions/28874135/dynamic-spring-data-jpa-repository-query-with-arbitrary-andclauses ) – iamiddy