Advertisement
package decodejava;
public class User_Details
{
private int id;
private String firstName;
private String lastName;
private Contact_Info contact;
public Contact_Info getContact()
{
return contact;
}
public void setContact(Contact_Info contact) {
this.contact = contact;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getFirstName()
{
return firstName;
}
public void setFirstName(String firstName)
{
this.firstName = firstName;
}
public String getLastName()
{
return lastName;
}
public void setLastName(String lastName)
{
this.lastName = lastName;
}
}
Advertisement
package decodejava;
public class Contact_Info
{
private int id;
private String emailId;
private String phoneNo;
private User_Details user;
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public User_Details1 getUser()
{
return user;
}
public void setUser(User_Details1 user)
{
this.user = user;
}
public String getEmailId()
{
return emailId;
}
public void setEmailId(String emailId)
{
this.emailId = emailId;
}
public String getPhoneNo()
{
return phoneNo;
}
public void setPhoneNo(String phoneNo)
{
this.phoneNo = phoneNo;
}
}
package decodejava;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Hiber
{
public static void main(String... ar)
{
Configuration config = new Configuration();
SessionFactory sf = config.configure().buildSessionFactory();
Session session = sf.openSession();
//Creating the first User_Details object
User_Details user1 = new User_Details();
user1.setFirstName("First");
user1.setLastName("User");
//Creating the contact info for the user
Contact_Info contact1 = new Contact_Info();
contact1.setEmailId("User1@xyz.com");
contact1.setPhoneNo("1111111");
contact1.setUser(user1);
user1.setContact(contact1);
//Creating the second User_Details object
User_Details user2 = new User_Details();
user2.setFirstName("Second");
user2.setLastName("User");
//Creating the contact info for the user
Contact_Info contact2 = new Contact_Info();
contact2.setEmailId("User2@xyz.com");
contact2.setPhoneNo("2222222");
contact2.setUser(user2);
user2.setContact(contact2);
session.beginTransaction();
session.save(user1); //Saving the first User_Details object, which also saves the Contact_Info object associated with it.
session.save(user2); //Saving the Second User_Details object, which also saves the Contact_Info object associated with it.
session.getTransaction().commit();
session.close();
//Retrieve and displaying the user details
session = sf.openSession();
session.beginTransaction();
user1 = (User_Details)session.get(User_Details.class,1);
user2 = (User_Details)session.get(User_Details.class,2);
System.out.println("Retrieving the saved objects");
//Retrieving details of the first user.
System.out.println("First User");
System.out.println("Id : " + user1.getId());
System.out.println("First Name : " + user1.getFirstName());
System.out.println("Last Name : " +user1.getLastName());
contact1 = user1.getContact();
System.out.println("Contact id : " + contact1.getId());
System.out.println("Email ID : " + contact1.getEmailId());
System.out.println("Mobile number : " + contact1.getPhoneNo());
//Retrieving details of the second user.
System.out.println("Second User");
System.out.println("Id : " + user2.getId());
System.out.println("First Name : " + user2.getFirstName());
System.out.println("Last Name : " +user2.getLastName());
contact2 = user2.getContact();
System.out.println("Mobile id : " + contact2.getId());
System.out.println("Email ID : " + contact2.getEmailId());
System.out.println("Mobile number : " + contact2.getPhoneNo());
}
}
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "decodejava.User_Details" table = "USER_DETAILS">
<id name = "id" column = "USER_ID" type = "int">
<generator class="native"/>
</id>
<property name = "firstName" column = "First_Name" type = "string"/>
<property name = "lastName" column = "Last_Name" type = "string"/>
<one-to-one name ="contact" class="decodejava.Contact_Info" cascade="all"/>
</class>
</hibernate-mapping>
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "decodejava.Contact_Info" table = "CONTACT_INFO">
<id name = "id" column = "USER_ID" type = "int">
<generator class="foreign">
<param name="property">user</param>
</generator>
</id>
<property name = "emailId" column = "Email_Id" type = "string"/>
<property name = "phoneNo" column = "Phone_No" type = "string"/>
<one-to-one name ="user" class="decodejava.User_Details"/>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create</property>
<!--Naming the mapping resource file -->
<mapping resource="userdetails.hbm.xml"/>
<mapping resource="contactinfo.hbm.xml"/>
</session-factory>
</hibernate-configuration>
- Hibernate: create sequence hibernate_sequence start with 1 increment by 1
Hibernate: create table CONTACT_INFO (USER_ID number(10,0) not null, Email_Id varchar2(255 char), Phone_No varchar2(255 char), primary key (USER_ID))
Hibernate: create table USER_DETAILS (USER_ID number(10,0) not null, First_Name varchar2(255 char), Last_Name varchar2(255 char), primary key (USER_ID))
Hibernate: select hibernate_sequence.nextval from dual
Hibernate: select hibernate_sequence.nextval from dual
Hibernate: insert into USER_DETAILS (First_Name, Last_Name, USER_ID) values (?, ?, ?)
Hibernate: insert into CONTACT_INFO (Email_Id, Phone_No, USER_ID) values (?, ?, ?)
Hibernate: insert into USER_DETAILS (First_Name, Last_Name, USER_ID) values (?, ?, ?)
Hibernate: insert into CONTACT_INFO (Email_Id, Phone_No, USER_ID) values (?, ?, ?)
Hibernate: select user_detai0_.USER_ID as USER_ID1_1_0_, user_detai0_.First_Name as First_Name2_1_0_, user_detai0_.Last_Name as Last_Name3_1_0_, contact_in1_.USER_ID as USER_ID1_0_1_, contact_in1_.Email_Id as Email_Id2_0_1_, contact_in1_.Phone_No as Phone_No3_0_1_ from USER_DETAILS user_detai0_ left outer join CONTACT_INFO contact_in1_ on user_detai0_.USER_ID=contact_in1_.USER_ID where user_detai0_.USER_ID=?
Hibernate: select user_detai0_.USER_ID as USER_ID1_1_0_, user_detai0_.First_Name as First_Name2_1_0_, user_detai0_.Last_Name as Last_Name3_1_0_, contact_in1_.USER_ID as USER_ID1_0_1_, contact_in1_.Email_Id as Email_Id2_0_1_, contact_in1_.Phone_No as Phone_No3_0_1_ from USER_DETAILS user_detai0_ left outer join CONTACT_INFO contact_in1_ on user_detai0_.USER_ID=contact_in1_.USER_ID where user_detai0_.USER_ID=?
Retrieving the saved objects
First User
Id : 1
First Name : First
Last Name : User
Contact id : 1
Email ID : User1@xyz.com
Mobile number : 1111111
Second User
Id : 2
First Name : Second
Last Name : User
Mobile id : 2
Email ID : User2@xyz.com
Mobile number : 2222222
select * from USER_DETAILS;
select * from CONTACT_INFO;
Advertisement
Advertisement
Please check our latest addition
C#, PYTHON and DJANGO
Advertisement