package com.hibernate.venkat;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* @author Venkat
*
*/
@Entity
public class School {
/**
* @param args
*/
private int schoolId;
private String schoolName;
private SchoolDetail schoolDetail;
@Id
@GeneratedValue
public int getSchoolId() {
return schoolId;
}
public void setSchoolId(int schoolId) {
this.schoolId = schoolId;
}
public String getSchoolName() {
return schoolName;
}
public void setSchoolName(String schoolName) {
this.schoolName = schoolName;
}
@Embedded
public SchoolDetail getSchoolDetail() {
return schoolDetail;
}
public void setSchoolDetail(SchoolDetail schoolDetail) {
this.schoolDetail = schoolDetail;
}
}
---------------------------------------------------------------------------------------------
package com.hibernate.venkat;
import javax.persistence.Embeddable;
@Embeddable
public class SchoolDetail {
private String schoolAddress;
private boolean isPublicSchool;
private int studentCount;
public String getSchoolAddress() {
return schoolAddress;
}
public void setSchoolAddress(String schoolAddress) {
this.schoolAddress = schoolAddress;
}
public boolean isPublicSchool() {
return isPublicSchool;
}
public void setPublicSchool(boolean isPublicSchool) {
this.isPublicSchool = isPublicSchool;
}
public int getStudentCount() {
return studentCount;
}
public void setStudentCount(int studentCount) {
this.studentCount = studentCount;
}
}
---------------------------------------------------------------------------------------------
package com.hibernate.venkat;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
* @author Venkat
*
*/
public class TestSchool {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AnnotationConfiguration config=new AnnotationConfiguration();
config.addAnnotatedClass(School.class);
config.configure("hibernate.cfg.xml");
new SchemaExport(config).create(true, true);
SessionFactory sf=config.buildSessionFactory();
Session s= sf.getCurrentSession();
s.beginTransaction();
SchoolDetail sd=new SchoolDetail();
sd.setPublicSchool(true);
sd.setSchoolAddress("Atlanta GA");
sd.setStudentCount(230);
School s1= new School();
s1.setSchoolName("Venkat School");
s1.setSchoolDetail(sd);
s.save(s1);
s.getTransaction().commit();
}
}
---------------------------------------------------------------------------------------------
<?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>
<!-- Database connection settings -->
<property name="connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
<property name="connection.username">venkat</property>
<property name="connection.password">venkat</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">2</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
<!-- Enable Hibernate's current session context -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.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> -->
<!-- <mapping resource="org/hibernate/tutorial/domain/Event.hbm.xml"/> -->
<!-- <mapping resource="org/hibernate/tutorial/domain/Person.hbm.xml"/> -->
</session-factory>
</hibernate-configuration>