New Annotations :
- @Embeddable : when a class is going to be embedded inside another persistence class we have to annotate the class as embeddable
- @Embedded : When some (object) field is going to persist inside a class. The object type must annotated as embeddable
School.java
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class School {
private int schoolId;
private String schoolName;
private SchoolDetails schoolDetails;
@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 SchoolDetails getSchoolDetails() {
return schoolDetails;
}
public void setSchoolDetails(SchoolDetails schoolDetails) {
this.schoolDetails = schoolDetails;
}
}
SchoolDetails.java
import javax.persistence.Embeddable;
@Embeddable
public class SchoolDetails {
private String schoolAddress;
private boolean isPrivateSchool;
private int studentCount;
public String getSchoolAddress() {
return schoolAddress;
}
public void setSchoolAddress(String schoolAddress) {
this.schoolAddress = schoolAddress;
}
public boolean isPrivateSchool() {
return isPrivateSchool;
}
public void setPrivateSchool(boolean isPrivateSchool) {
this.isPrivateSchool = isPrivateSchool;
}
public int getStudentCount() {
return studentCount;
}
public void setStudentCount(int studentCount) {
this.studentCount = studentCount;
}
}
Test.java
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
AnnotationConfiguration config=new AnnotationConfiguration();
config.addAnnotatedClass(School.class);
config.configure("hibernate.cfg.xml");
new SchemaExport(config).create(true, true);
SessionFactory factory=config.buildSessionFactory();
Session session=factory.getCurrentSession();
session.beginTransaction();
SchoolDetails schDtl=new SchoolDetails();
schDtl.setPrivateSchool(false);
schDtl.setSchoolAddress("Richmond College,Richmond Hill,Galle");
schDtl.setStudentCount(3000);
School richmond=new School();
richmond.setSchoolDetails(schDtl);
richmond.setSchoolName("richmond College Galle");
session.saveOrUpdate(richmond);
session.getTransaction().commit();
}
}
Result :


0 comments:
Post a Comment