下面是我如何从数据库获取我的用户bean。
session.createCriteria(User.class).list();它从数据库返回所有用户记录。有趣的是,我不想从DB获取密码字段。只是想在检索时排除该字段。
我有选择
1)利用其他领域的预测。这需要更多的代码添加到预测列表中。所以就放弃了这个想法。
2)使用Sql,我需要编写一个手动查询,该查询将终止Hibernate的主题。
有没有可能排除Bean的列值?
发布于 2014-09-22 09:14:34
让我们假设下面是您的POJO:
User.java
private long id;
private String fName;
private String lName;
// getter - setter of all fields现在假设您只想获得id & fName字段,而不是lName。
除了您描述的两种方法之外,还有第三种方法可以使用HQL来实现这一点。
Query q1 = session.createQuery("Select new User(id, fName) from User");
List<User> users = q1.list();将User.java修改为具有另一个构造函数,如下所示:
public User(long id, String fName)
{
this.id = id;
this.fName = fName;
}简而言之,无论您想检索什么字段,您都可以在构造函数和查询中列出它们。
希望这能有所帮助。
发布于 2014-09-22 09:15:40
你可以试试:
Example example = Example.create(cat)
.excludeZeroes() //exclude zero valued properties
.excludeProperty("color") //exclude the property named "color"
.ignoreCase() //perform case insensitive string comparisons
.enableLike(); //use like for string comparisons
List results = session.createCriteria(Cat.class)
.add(example)
.list();参考 :-
https://stackoverflow.com/questions/25970226
复制相似问题