Here is how I'm getting my User beans from Database.
session.createCriteria(User.class).list();
That returns all of User records from database. Interesting part is that, I don't want to get the password field from DB. Just want to exclude that field while retrieving.
Options I have
1) using projections on other fields. That needs to be more code to add in to projections list. So dropped from that idea.
2) With Sql I need to write a manually query, which kills the theme of Hibernate.
Any possibility to exclude a column value of Bean ?
Let's assume that following is your POJO:
User.java
private long id;
private String fName;
private String lName;
// getter - setter of all fields
Now suppose you want to get only id
& fName
fields and not lName
.
Apart from the two approaches you've described, there's also a third way to achieve this, which uses HQL.
Query q1 = session.createQuery("Select new User(id, fName) from User");
List<User> users = q1.list();
Modify User.java to have another constructor as follows:
public User(long id, String fName)
{
this.id = id;
this.fName = fName;
}
In short, whatever fields you want to retrieve, you can list them in the constructor as well as in the query.
Hope this helps.
you can try:
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();
Reference :-
- http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/querycriteria.html#querycriteria-examples
- http://docs.jboss.org/hibernate/orm/3.6/javadocs/org/hibernate/criterion/Example.html