-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: unable to insert the reference key data in Database
PostPosted: Tue Apr 24, 2007 5:59 am 
Newbie

Joined: Fri Apr 20, 2007 7:56 am
Posts: 1
I am trying to add and fetching record from the table using mapping in Hibernate.
i m new in Hibernate and My project tables are complex for me to do this...
so i have taken two simple table.....

Table 1 : book
PK
id
name

Table 2 : author
PK id
authorname
FK bid

Now, i can add data in book table coz it is very easy...but i want to connect these two table by applying mapping ...

i have created the xml files as follows...
-----------------------------------------------------------------------------------
book.hbm.xml


<hibernate-mapping>
<class name="BookOpr.Book" table="book">
<id name="lngBookId" type="long" column="id" >
<generator class="increment"/>
</id>
<property name="strBookName">
<column name="bookname" />
</property>
</class>
</hibernate-mapping>



author.hbm.xml


<hibernate-mapping>
<class name="BookOpr.Author" table="author">
<id name="lngAuthorId" type="long" column="id" >
<generator class="increment"/>
</id>
<property name="strAuthorName">
<column name="authorname" />
</property>
<property name="lngBID" insert="false" update="false">
<column name="bid" />
</property>
<many-to-one name="Bk" column="bid"
class="BookOpr.Book" not-null="false"/>
</class>
</hibernate-mapping>



Now the beans of these two files.....

Book.java


package BookOpr;
public class Book {
private long lngBookId;
private String strBookName;

public long getLngBookId() {
return lngBookId;
}
public void setLngBookId(long lngBookId) {
this.lngBookId = lngBookId;
}
public String getStrBookName() {
return strBookName;
}
public void setStrBookName(String strBookName) {
this.strBookName = strBookName;
}
}



Author.java

package BookOpr;
public class Author {
private long lngAuthorId;
private String strAuthorName;
private long lngBID;
private Book bk;

public Author() {
}

public long getLngAuthorId() {
return lngAuthorId;
}

public void setLngBID(long lngBID) {
this.lngBID = lngBID;
}

public Book getBk() {
return bk;
}

public void setBk(Book bk) {
this.bk = bk;
}

}



I have created two Transaction files.....

BookTransaction.java


package BookOpr;
import java.io.*;
import java.lang.*;
import java.lang.Integer;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import java.util.*;
import java.util.Vector;

public class BookTransaction {

public Session session = null;
public SessionFactory sf=null;

/** Creates a new instance of Transaction */
public BookTransaction() {

}

public void inserData(Book b)
{
sf = new Configuration().configure().buildSessionFactory();
session = sf.openSession();
Transaction Tr_ins = session.beginTransaction();
session.saveOrUpdate(b);
Tr_ins.commit();
session.close();
}
public List AllData()
{
System.out.println("In AllData");
sf = new Configuration().configure().buildSessionFactory();
session = sf.openSession();
Transaction Tr_ins = session.beginTransaction();
List qry=session.createQuery("from Book").list();
for(int i=0;i<qry.size();i++)
{
Book b1=(Book)qry.get(i);
System.out.println(b1.getLngBookId()+ " " + b1.getStrBookName());
}
Tr_ins.commit();
session.close();
return qry;
}

public Book searchData(int bid)
{
sf = new Configuration().configure().buildSessionFactory();

Book BData=new Book();
session = sf.openSession();
Transaction Tr_ins = session.beginTransaction();

List lstsession = session.createQuery("from Book as b where b.lngBookId = ?")
.setEntity(0,new Integer(bid)).list();

BData.setLngBookId(Long.parseLong(lstsession.get(1).toString()));
BData.setStrBookName((lstsession.get(2).toString()));

Tr_ins.commit();
session.close();
return BData;
}
}


AuthorTransaction.java

package BookOpr;
import java.io.*;
import java.lang.*;
import java.lang.Integer;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import java.util.*;
import java.util.Vector;
public class AuthorTransaction {

public Session session = null;
public SessionFactory sf=null;

/** Creates a new instance of AuthorTransaction */
public AuthorTransaction() {
}
public void inserData(Author b)
{
sf = new Configuration().configure().buildSessionFactory();
session = sf.openSession();
Transaction Tr_ins = session.beginTransaction();
session.saveOrUpdate(b);
Tr_ins.commit();
session.close();
}
public Query AllData()
{
sf = new Configuration().configure().buildSessionFactory();
session = sf.openSession();
Transaction Tr_ins = session.beginTransaction();
Query qry=session.createQuery("from Author");

Tr_ins.commit();
session.close();
return qry;
}
}



now i am created two servlet in which i set the data in bean and then call the methods of transaction files.....to insert and getting data.....
In this when i insert record in Book it success fully inseted in it...
but i got the errors as follow when i insert into the author table....

Now there is no error while i insert data in Author but it ill not insert bid (reference key) value in table......

Can any one help me out.......

Thank you in advance......[/b]


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.