Hibernate -Collection Mapping with annotations


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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/Test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">minu</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping class="com.mappingannot.hibernate.Student"/>

</session-factory>
</hibernate-configuration>


Student.java

package com.mappingannot.hibernate;
import java.util.*;

import javax.persistence.*;

import org.hibernate.annotations.CollectionOfElements;
import org.hibernate.annotations.IndexColumn;
@Entity
@Table(name="students")
public class Student {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="sid")
private int sid;
@Column(name="sname")
private String sname;
@Column(name="dob")
private String dob;
@Column(name="qualification")
private String qualification;
@CollectionOfElements
@JoinTable(name="courses1",joinColumns=@JoinColumn(name="sid"))
@IndexColumn(name="idx")
@Column(name="cname")
private String[] courses;
@CollectionOfElements
@JoinTable(name="emails1",joinColumns=@JoinColumn(name="sid"))
@IndexColumn(name="idx")
@Column(name="ems")
private List<String> emails;
@CollectionOfElements
@JoinTable(name="marks1",joinColumns=@JoinColumn(name="sid"))
@IndexColumn(name="idx")
@Column(name="mks")
private List<Integer> marks;
@CollectionOfElements
@JoinTable(name="phones1",joinColumns=@JoinColumn(name="sid"))
@Column(name="phs")
private Set<Long> phones;
@CollectionOfElements
@JoinTable(name="refs1",joinColumns=@JoinColumn(name="sid"))
@Column(name="rphone")
private Map<String,Long> refs;
public Student(){}
public Student(int sid, String sname, String dob, String qualification,
String[] courses, List<String> emails, List<Integer> marks,
Set<Long> phones, Map<String, Long> refs) {
super();
this.sid = sid;
this.sname = sname;
this.dob = dob;
this.qualification = qualification;
this.courses = courses;
this.emails = emails;
this.marks = marks;
this.phones = phones;
this.refs = refs;
}
public Student(String sname, String dob, String qualification,
String[] courses, List<String> emails, List<Integer> marks,
Set<Long> phones, Map<String, Long> refs) {
super();
this.sname = sname;
this.dob = dob;
this.qualification = qualification;
this.courses = courses;
this.emails = emails;
this.marks = marks;
this.phones = phones;
this.refs = refs;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getQualification() {
return qualification;
}
public void setQualification(String qualification) {
this.qualification = qualification;
}
public String[] getCourses() {
return courses;
}
public void setCourses(String[] courses) {
this.courses = courses;
}
public List<String> getEmails() {
return emails;
}
public void setEmails(List<String> emails) {
this.emails = emails;
}
public List<Integer> getMarks() {
return marks;
}
public void setMarks(List<Integer> marks) {
this.marks = marks;
}
public Set<Long> getPhones() {
return phones;
}
public void setPhones(Set<Long> phones) {
this.phones = phones;
}
public Map<String, Long> getRefs() {
return refs;
}
public void setRefs(Map<String, Long> refs) {
this.refs = refs;
}
}

AHibernateUtil.java

package com.mappingannot.hibernate;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class AHibernateUtil {
 static SessionFactory factory;
 static
 {
  
   AnnotationConfiguration cfg=new AnnotationConfiguration();
   cfg=(AnnotationConfiguration)cfg.configure();
   factory=cfg.buildSessionFactory();
   
  
  
 }
 public static SessionFactory getSessionFactory()
 {
  return factory;
 }
}


Lab.java

package com.mappingannot.hibernate;
import java.util.*;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

public class Lab {

public static void main(String[] args) {
try
{
SessionFactory sf=AHibernateUtil.getSessionFactory();
Session session=sf.openSession();
Transaction tx=session.beginTransaction();
String cou[]={"JDBC","JSF","J2EE","EJB"};
List<String> ems=new ArrayList<String>();
ems.add("a1@gmail.com");
ems.add("a2@gmail.com");
ems.add("a3@gmail.com");
List<Integer> mks=new ArrayList<Integer>();
mks.add(new Integer(100));
mks.add(new Integer(89));
mks.add(new Integer(90));
Set<Long> phs=new HashSet<Long>();
phs.add(new Long(111));
phs.add(new Long(222));
phs.add(new Long(333));
Map<String,Long> refs=new HashMap<String,Long>();
refs.put("aaa",new Long(122345));
refs.put("bbb",new Long(129856));
refs.put("ccc",new Long(129978));
Student st=new Student("Minu","11-08-1988","BTech",cou,ems,mks,phs,refs);
session.save(st);
tx.commit();
session.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}



Comments

Popular posts from this blog

Hibernate Collection Mapping example

C programming:-Files - Part 5

Struts 2 Troubleshooting