File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Hibernate mapping

 
jaisai vijay
Ranch Hand
Posts: 70
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I am new to hibernate.

Right now I am doing a simple project on hibernate. I have a simple question

I have two tables for example: TableA and TableB.
TableA has TableId and TableAName.
TableB has TableId, UserId and TableBScore.

Both TableIds are primary keys. Now I would like to retrieve TableAName, TableBScore based on UserId from TableB. I have a basic idea that how to write in SQL.
Select A.TableAName, B.TableBScore from TableA A,TableB B where A.TableId=B.TableB and B.UserId=1;

I was trying to do this using HQL I couldn't understand how to do this scenario. Can anyone help me in this?

Thanks for your help in advance.
 
Mark Spritzler
ranger
Sheriff
Posts: 17276
6
IntelliJ IDE Mac Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It depends on your mapping between the two objects. If you have mapped the association then it is very simple

Select A.TableAName, B.TableBScore from TableA A,TableB B where A.TableId=B.TableB and B.UserId=1;

in HQL it would be

"SELECT a.tableAName, b.tableBScore FROM ObjectA a JOIN ObjectB b WHERE b.userId=1"

tableAName and tableBScore are the attributes of your Objects, not field names here.

Hope that helps.

Also note that a projection query in Hibernate returns an Object[] for the records. If you want the full ObjectA with reference to ObjectB then just do

in HQL

"FROM ObjectA a JOIN FETCH ObjectB b WHERE b.userId=1"

Mark
 
xsunil kumar
Ranch Hand
Posts: 139
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You need to join both entities. As per your code, we are assuming that A.TableId=B.TableB are same. Means both tables have same primary key. So this is one to one mapping and you can use primaryKey join annotation to map both entity. In that case you need to pass userId only in find method for table B and you will get data from Table A also.

Make sure table B is the owner of the relationship.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic