• Post Reply Bookmark Topic Watch Topic
  • New Topic

Hibernate Restrictions

Patrick McDonogh
Ranch Hand
Posts: 89
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi there,

I am wondering about the best way to get values out of the Objects stored in a list when i do a projection.

List matches = session.createCriteria(Cat.class)
.add(Restrictions.ilike("name", "Mic%"))

After running this the "matches" list containes Objects which contain two strings. I was expecting the list to contain Cats with only the name and colour properties set. So if there are 10 matches then the "matches" list will contain 10 Objects and each object will contain two strings relating to the name and colour of the cat.

So how do i get the two strings out of the Objects in the list, or set the list to contain a different type of object.
Basically i am confused about what you do with the results in the list and how you get them out or if you can set a different object rather thanthe standard java.lang.Object to be stored in the list.

Thanks a lot.

Mark Spritzler
Posts: 17309
IntelliJ IDE Mac Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Yes, in a Projection query you will get a List of Object arrays, two dimensional.

If you want actual objects out of them, you can create an object that has a constructor that takes the projection fields in order that they appear, and just set the class to that object. The object doesn't even have to be mapped to a database table.

In HQL, for example you can do the following

"Select new MyObject(t.a, t.b, t.c) FROM MyTableMappedObject t"

And you will get a List<MyObject> returned instead of the two dimensional Object array.

my overalls have superpowers - they repel people who think fashion is important. Tiny ad:
the new thread boost feature brings a LOT of attention to your favorite threads
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!