gpt4 book ai didi

java - Hibernate Criteria/Criterion with Restrictions 等于 POJO 的非空值

转载 作者:太空宇宙 更新时间:2023-11-04 14:02:46 25 4
gpt4 key购买 nike

我有一个像这样的POJO

public class Employee
{
private String name;
private int age;

// setters and getters
}

我可以使用 Criteria API 来检查 POJO 的非空值是否相等

Employee emp = new Employee();
emp.setName("Xyz");
session.createCriteria(Employee.class).add(
Restrictions.nonNullPropertiesEqual(emp) /* Imaginary method */);

而不是

session.createCriteria(Employee.class).add(   
Restrictions.eq("name", "Xyz"));

这样我就可以接受 POJO 作为方法参数并返回与 POJO 的非 null 属性匹配的 POJO。

我使用的是 hibernate 4.3.8

最佳答案

你可以使用这样的java反射API来做到这一点

import java.lang.reflect.Field;

private void nonNullPropertiesEqual(Object obj){
Criteria cr = session.createCriteria(obj.getClass());
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
cr.add(Restrictions.isNotNull(field.getName()));
}
}

然后你可以用任何 POJO 来调用这个方法

Employee emp = new Employee();
nonNullPropertiesEqual(emp);

这将对非 NULL 属性施加限制。

关于java - Hibernate Criteria/Criterion with Restrictions 等于 POJO 的非空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29160376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com