Person.hbm
<class name="hibernatetest2.Person" table="PERSON">
<id column="personid" name="personid">
<generator class="increment"/>
</id>
<property column="name" name="name"/>
<property column="age" name="age"/>
<set cascade="all" name="hats" table="HAT">
<key column="personid"/>
<one-to-many class="hibernatetest2.Hat"/>
</set>
</class>
Hat.Hbm
<class name="hibernatetest2.Hat" table="HAT">
<id column="hatid" name="hatid">
<generator class="increment"/>
</id>
<property column="personid" name="personid"/>
<property column="color" name="color"/>
<property column="size" name="size"/>
</class>
Person.java
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package hibernatetest2;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
*
* @author Kamal
*/
public class Person {
private int personid;
private String name;
private int age;
private Set<Hat> hats;
// Generate Getters and Setters for the above
// Properties
public Person() {
hats = new HashSet<Hat>();
}
public int getPersonid() {
return personid;
}
public void setPersonid(int personid) {
this.personid = personid;
}
public String getName() {
return name;
}
public Set<Hat> getHats() {
return hats;
}
public void setHats(Set<Hat> hats) {
this.hats = hats;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
String personString = "Person: " + getPersonid()
+ " Name: " + getName()
+ " Age: " + getAge();
String hatString = "";
for (Hat hat : hats) {
hatString = hatString + "\t\t" + hat.toString() + "\n";
}
return personString + "\n" + hatString;
}
}
hat.java
private int hatid;
private String color;
private String size;
private int personid;
// Getters and Setters
public int getHatid() {
return hatid;
}
public void setHatid(int hatid) {
this.hatid = hatid;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public int getPersonid() {
return personid;
}
public void setPersonid(int personid) {
this.personid = personid;
}
public String toString() {
return "Hat: " + getHatid()
+ " Color: " + getColor()
+ " Size: " + getSize();
}
Main.java
public static void main(String[] args) {
// TODO code application logic
Person p1 = new Person();
p1.setName("Saman With Hats");
p1.setAge(30);
Hat h1 = new Hat();
h1.setColor("Black");
h1.setSize("Small");
Hat h2 = new Hat();
h2.setColor("White");
h2.setSize("Large");
p1.getHats().add(h1);
p1.getHats().add(h2);
createPerson(p1);
listPerson();
}
private static void listPerson() {
Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
List persons = session.createQuery(
"select p from Person as p").list();
System.out.println("*** Content of the Person Table ***");
System.out.println("*** Start ***");
// ------------- Query
// Query q = session.createQuery("select p from Person as p where p.age >:age");
// Person fooPerson = new Person();
// fooPerson.setAge(age);
// q.setProperties(fooPerson);
// List persons = q.list
//-------------------------
for (Iterator iter = persons.iterator(); iter.hasNext();) {
Person element = (Person) iter.next();
System.out.println(element);
}
System.out.println("*** End ***");
session.getTransaction().commit();
} catch (RuntimeException e) {
}
}
private static void deletePerson(Person person) {
Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.delete(person);
session.getTransaction().commit();
} catch (RuntimeException e) {
}
}
private static void createPerson(Person person) {
Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.save(person);
session.getTransaction().commit();
} catch (RuntimeException e) {
}
}
private static void updatePerson(Person person) {
Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();
try {
session.beginTransaction();
session.update(person);
session.getTransaction().commit();
} catch (RuntimeException e) {
}
}
No comments:
Post a Comment