Hibernate One To One Insert Operation
We will use following files
Pupil.java
Result.java
hibernate.cfg.xml
HibernateEngineInsert.java
Pupil.java
@Entity
@Table(name="PUPILS_DATA")
public class Pupil{
@Id
@Column(name="ROLL_NUMBER")
int rollNumber;
@Column(name="NAME")
String name;
@Column(name="ADDRESS")
String address;
@OneToOne(targetEntity=Result.class,cascade=CascadeType.ALL)
@JoinColumn(name="ROLL_NUMBER",referencedColumnName="ROLL_NUMBER")
Result result;
// set and get methods
}
Result.java
@Entity
@Table(name="PUPILS_RESULTS_DATA")
public class Result {
@Id
@Column(name="ROLL_NUMBER")
private int rollNumber;
@Column(name="MATHS_MARKS")
private int mathsMarks;
@Column(name="SCIENCE_MARKS")
private int scienceMarks;
@Column(name="TOTAL_MARKS")
private int totalMarks;
@OneToOne(targetEntity=Pupil.class,cascade=CascadeType.ALL)
@JoinColumn(name="ROLL_NUMBER",referencedColumnName="ROLL_NUMBER")
private Pupil pupil;
// set and get methods
}
hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/mydb</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">false</property>
<property name="hbm2ddl.auto">update</property>
<mapping class="javafiles.Pupil"/>
<mapping class="javafiles.Result"/>
</session-factory>
</hibernate-configuration>
HibernateEngineInsert.java
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class HibernateEngineInsert {
public static void main(String[] javaWorld)
{
System.out.println(".......ENGINE START.......");
System.out.println(".. ONE TO ONE ANNOTATION INSERT LESSON ..");
Configuration configurationObj = new Configuration();
configurationObj.configure("hibernate.cfg.xml");
SessionFactory sessionFactoryObj = configurationObj.buildSessionFactory();
Session sessionObj = sessionFactoryObj.openSession();
Pupil pupilObj = new Pupil();
pupilObj.setRollNumber(4);
pupilObj.setName("Digpal");
pupilObj.setAddress("Raj-Palace,Mahel-Road,Sundan");
Result resultObj = new Result();
resultObj.setRollNumber(pupilObj.getRollNumber());
resultObj.setMathsMarks(43);
resultObj.setScienceMarks(60);
resultObj.setTotalMarks((resultObj.getScienceMarks()+resultObj.getMathsMarks()));
resultObj.setPupil(pupilObj);
pupilObj.setResult(resultObj);
Transaction transactionObj = sessionObj.beginTransaction();
sessionObj.save(resultObj);
//sessionObj.save(pupilObj);
transactionObj.commit();
sessionObj.close();
sessionFactoryObj.close();
System.out.println("....... DATA SAVED SUCCESSFULLY ............");
System.out.println(".......ENGINE STOP.......");
}
}