标签: hibernate-criteria

Hibernate Criteria, createAlias() 如果 Alias 为 Null

在下面的代码中.. 有两个别名作为Entity Object 参考。有时"caseStage" as stage可以null在数据库中。当"caseStage"为空时,我希望stage.name值为空String或诸如此类的自定义值"---"

session.createCriteria(CaseMasterPO.class)
       .createAlias("branch", "br")     // BranchPO.class
       .createAlias("caseStage", "stage") // CaseStagePO.class
       .setProjection(Projections.projectionList()
          .add(Projections.property("caseCode"))
          .add(Projections.property("br.zoneCode"))
          .add(Projections.property("stage.name")) // Problem, when stage == null
       )
       .add(Restrictions.eq("caseCode", caseCode)).uniqueResult();
Run Code Online (Sandbox Code Playgroud)

java alias hibernate hibernate-criteria criteriaquery

1
推荐指数
1
解决办法
1914
查看次数

什么是org.hibernate.criterion.Example类?

我是hibernate ORM的初学者.我找到了一个类Example(org.hibernate.criterion.Example).我搜索过很多关于同一个课程的内容,但我找不到真正的用途或任何好的例子.Hibernate文档没有为我提供足够的信息来理解这个类.

如果任何人能够提供一个最好的例子并解释Example类的用途,那将是很好的

提前致谢

java orm hibernate hibernate-criteria

1
推荐指数
1
解决办法
1020
查看次数

如何使用休眠过滤器过滤休眠中的实体

我需要过滤对象列表中的实体,例如:

public class Student {

    private int id;

    private List<Course> courses;

}

public class Course {

    private int id;

    private String name;

    private float note;

    private Classroom classroom;

}

public class Classroom {

    private int id;

    private String classroom;

} 
Run Code Online (Sandbox Code Playgroud)

如何获得一个包含笔记大于 70 且位于教室 23(例如)的课程列表的学生对象?

有没有办法使用实体的名称而不是数据库的列之一?

或者我如何将 hibernate 为实体生成的别名与 sql 相关联?

我附上了一个来自休眠过滤器的链接:https : //docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/ch19.html

java hibernate hibernate-mapping hibernate-criteria hibernate-filters

1
推荐指数
1
解决办法
1万
查看次数

Hibernate Criteria OR Restriction - 如果一列或两列值为1,则获取列表

我的表结构如下:

在此输入图像描述

有人可以帮助处理以下条件查询:

Criteria c = getSession().createCriteria(getEntity(), "b");
c.add(Restrictions.in("b.isTwitterVerified", 1));
or // b.isFbVerified =1// something like this
return c.list();
Run Code Online (Sandbox Code Playgroud)

java orm hibernate hibernate-criteria

1
推荐指数
1
解决办法
460
查看次数

Spring Data JPA:从不同的表创建规范子查询

我正在尝试构建规范来为以下查询谓词子查询。选择 u.* from User u where u.login in(选择 ur.role_id from userRoles ur where ur.role_Id = roleId)。

到目前为止,这是我构建的部分

public static Specification<User> userRoleId(String roleId) {
        return new Specification<User>() {
            @Override
            public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
                //return builder.equal(root.<LocalDate> get("scheduledDisbursementDate"), scheduledDisbursementDate);
                Subquery<UserRole> subquery = query.subquery(UserRole.class);
                Root<UserRole> subqueryRoot = subquery.from(UserRole.class);
                subquery.select(subqueryRoot);
                Predicate roleIdList = builder.equal(subqueryRoot.get("roleId"), roleId);
                subquery.select(subqueryRoot).where(roleIdList);
                return builder.exists(subquery);
            }
        };
    }
Run Code Online (Sandbox Code Playgroud)

你能帮我把子查询与主查询联系起来吗?

注意:实体类中没有定义连接。一切都应该只通过子查询来完成

spring hibernate-criteria spring-data-jpa

1
推荐指数
1
解决办法
7336
查看次数

Hibernate Criteria API 加入没有任何关联的实体

我正在尝试编写一个相当于以下 SQL 查询的 Hibernate Criteria API:

select c.NAME         as carName,
   cc.COLOR_CODE      as colorCode,
   cc.COLOR           as color,
   c.DESCRIPTION      as desc,
   c.MANUFACTURE_YEAR as year
from CAR c
     LEFT JOIN CAR_COLOR CC on c.COLOR_CODE_ID = CC.ID
WHERE CC.COLOR_CODE = ?
Run Code Online (Sandbox Code Playgroud)

这是我的Car实体

public class Car extends BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String name;

    @Basic
    @Column(name = "MANUFACTURE_YEAR")
    private String year;

    @Basic
    @Column(name = "DESCRIPTION")
    private String desc;
    private Long colorCodeId;
    private String manufacturer;
}
Run Code Online (Sandbox Code Playgroud)

这是我的CarColor实体 …

hibernate jpa criteria criteria-api hibernate-criteria

1
推荐指数
1
解决办法
5879
查看次数

参数值 [\] 与预期类型不匹配 [java.lang.String (n/a)]

从第二次调用开始出现以下异常。我们正在使用 hibernate 5.6.6.Final

"message": "参数值 [\] 与预期类型 [java.lang.String (n/a)] 不匹配;嵌套异常为 java.lang.IllegalArgumentException:参数值 [\] 与预期类型 [java.lang.IllegalArgumentException] 不匹配。 lang.String(不适用)]",

hibernate-criteria spring-data-jpa

1
推荐指数
1
解决办法
1万
查看次数

Hibernate Criteria API按比例过滤集合

我有

Class A{
  List <B> bList

}

Class B {
 String name;

}
Run Code Online (Sandbox Code Playgroud)

现在我想用Hibrnate标准API编写查询,这样我只得到一个带有过滤的bList属性的pojo,只有B pojo的

 where "b.name"  == 'abc'
Run Code Online (Sandbox Code Playgroud)

hibernate detachedcriteria hibernate-criteria

0
推荐指数
1
解决办法
1632
查看次数

使用Hibernate Criteria API阅读

我正在我的项目中使用Hibernate Criteria API.在此API中,list()方法用于从db获取大量记录.我的问题是:如何从db中只获取一条记录(不使用list()方法,因为没有必要)?

java hibernate criteria hibernate-criteria

0
推荐指数
1
解决办法
131
查看次数

如何在JPA中处理分页(条件和谓词)

我正在使用条件和谓词从数据库中获取结果,并且得到了结果列表,并且我试图应用分页和排序,但是它不起作用。请在缺少的地方帮我,这是我的代码:

private Page<Books> getFiltereBooks(Params params,
            PageRequest sortOrder) {
        CriteriaBuilder builder =  em.getCriteriaBuilder();
        CriteriaQuery<Books> criteria = builder.createQuery(Books.class);
        Root<Books> booksRoot = criteria.from(Books.class);
        List<Predicate> predicates = new ArrayList<Predicate>();


            predicates.add(builder.equal(booksRoot.get("id"), params.getRequestId()));


            predicates.add(builder.like(builder.lower(booksRoot.get("name")), 
                    "%" + params.getName().toLowerCase() + "%"));


        criteria.where(builder.and(predicates.toArray( new Predicate[predicates.size()])));

            criteria.orderBy(builder.desc(booksRoot.get("id")));

        List<Books> result = em.createQuery(criteria).getResultList();
        int total = result.size();
        Page<Books> result1 = new PageImpl<>(result, sortOrder, total);
        return result1;
    }
Run Code Online (Sandbox Code Playgroud)

当我使用此代码时:

Page<Books> result1 = new PageImpl<>(result, sortOrder, total);
Run Code Online (Sandbox Code Playgroud)

它不起作用,我想返回一个页面对象。任何帮助表示赞赏。

java hibernate hibernate-criteria spring-data-jpa

0
推荐指数
1
解决办法
1757
查看次数

有没有办法将 jpa 谓词数组传递给 KOTLIN 中的标准构建器?

在:https : //stackoverflow.com/a/11138229/1270045 中提出的解决方案 在 java 中工作得很好,但我在 kotlin 中。在这里我如何将谓词数组传递给用 kotlin 编写的标准构建器?

所以它是关于在 kotlin 中写这个我可以传递的:

cq.select(customer).where(predicates.toArray(new Predicate[]{}));
Run Code Online (Sandbox Code Playgroud)

我的示例代码:

val predicates = mutableListOf<Predicate>()
if (XYZ != null) {
    val XYZPath = element.get<Long>("XYZ")
    predicates.add(criteriaBuilder.equal(XYZPath, XYZ))
}
criteriaQuery.select(element)
    .where(criteriaBuilder.or(???))
Run Code Online (Sandbox Code Playgroud)

java syntax jpa hibernate-criteria kotlin

0
推荐指数
1
解决办法
1169
查看次数

布尔如何排序?

我正在使用以下代码进行排序:

undoneCategories = session.createCriteria(Category.class);
undoneCategories.add(Restrictions.eq("Done", false));
undoneCategories.addOrder(Order.asc("UpwardGenerator"));
undoneCategories.setMaxResults(1);
Run Code Online (Sandbox Code Playgroud)

哪里UpwardGeneratorboolean.

它将如何排序?有false第一个?还是true第一个?

java sorting hibernate boolean hibernate-criteria

-1
推荐指数
1
解决办法
6470
查看次数