<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FHibernate%2FSession</id>
		<title>Java Tutorial/Hibernate/Session - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FHibernate%2FSession"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Hibernate/Session&amp;action=history"/>
		<updated>2026-04-22T04:01:26Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Hibernate/Session&amp;diff=4504&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Hibernate/Session&amp;diff=4504&amp;oldid=prev"/>
				<updated>2010-06-01T05:02:40Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:02, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Hibernate/Session&amp;diff=4503&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Hibernate/Session&amp;diff=4503&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Create Criteria from Session ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Main.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
import java.util.Iterator;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import org.hibernate.Criteria;&lt;br /&gt;
import org.hibernate.Session;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    HibernateUtil hibernateUtil = new HibernateUtil();&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table survey (id int,name varchar, purchasedate date);&amp;quot;);&lt;br /&gt;
    Session session = hibernateUtil.getSession();&lt;br /&gt;
    Survey survey = new Survey();&lt;br /&gt;
    survey.setName(&amp;quot;Survey&amp;quot;);&lt;br /&gt;
    survey.setPurchaseDate(new Date());&lt;br /&gt;
    session.save(survey);&lt;br /&gt;
    session.flush();&lt;br /&gt;
    &lt;br /&gt;
    Criteria crit = session.createCriteria(Survey.class);&lt;br /&gt;
    List results = crit.list();&lt;br /&gt;
    &lt;br /&gt;
    Iterator iter = results.iterator();&lt;br /&gt;
    while (iter.hasNext()) {&lt;br /&gt;
      Survey cd = (Survey) iter.next();&lt;br /&gt;
      System.out.println(&amp;quot;Result Name:&amp;quot;+cd.getName());&lt;br /&gt;
    }&lt;br /&gt;
    session.close();&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from survey&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create Query from Session ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Main.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import org.hibernate.Query;&lt;br /&gt;
import org.hibernate.Session;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    HibernateUtil hibernateUtil = new HibernateUtil();&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table speakers (uid int, firstName varchar,lastName varchar, event_id int);&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table locations (uid int, name varchar, address varchar,  event_id int);&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table attendees (uid int, firstName varchar, lastName varchar,  event_id int);&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table events (uid int , name varchar, start_date date, duration integer,location_id int);&amp;quot;);&lt;br /&gt;
    Session session = hibernateUtil.getSession();&lt;br /&gt;
    Event e = new Event();&lt;br /&gt;
    e.setName(&amp;quot;testSave&amp;quot;);&lt;br /&gt;
    session.saveOrUpdate(e);&lt;br /&gt;
    session.flush();&lt;br /&gt;
    &lt;br /&gt;
    Query query = session.createQuery(&amp;quot;from Event&amp;quot;);&lt;br /&gt;
    List list = query.list();&lt;br /&gt;
    &lt;br /&gt;
    session.close();&lt;br /&gt;
    &lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from events&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from speakers&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from locations&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from attendees&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Let Hibernate to decide whether to save or update ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Main.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import org.hibernate.Session;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    HibernateUtil hibernateUtil = new HibernateUtil();&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table speakers (uid int, firstName varchar,lastName varchar, event_id int);&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table locations (uid int, name varchar, address varchar,  event_id int);&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table attendees (uid int, firstName varchar, lastName varchar,  event_id int);&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table events (uid int , name varchar, start_date date, duration integer,location_id int);&amp;quot;);&lt;br /&gt;
    Session session = hibernateUtil.getSession();&lt;br /&gt;
    Event e = new Event();&lt;br /&gt;
    e.setName(&amp;quot;testSave&amp;quot;);&lt;br /&gt;
    session.saveOrUpdate(e);&lt;br /&gt;
    session.flush();&lt;br /&gt;
    session.close();&lt;br /&gt;
    &lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from events&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from speakers&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from locations&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from attendees&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listen to Session Event ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Main.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.hibernate.HibernateException;&lt;br /&gt;
import org.hibernate.Session;&lt;br /&gt;
import org.hibernate.event.AutoFlushEvent;&lt;br /&gt;
import org.hibernate.event.DeleteEvent;&lt;br /&gt;
import org.hibernate.event.DirtyCheckEvent;&lt;br /&gt;
import org.hibernate.event.EvictEvent;&lt;br /&gt;
import org.hibernate.event.FlushEntityEvent;&lt;br /&gt;
import org.hibernate.event.FlushEvent;&lt;br /&gt;
import org.hibernate.event.InitializeCollectionEvent;&lt;br /&gt;
import org.hibernate.event.LoadEvent;&lt;br /&gt;
import org.hibernate.event.LockEvent;&lt;br /&gt;
import org.hibernate.event.MergeEvent;&lt;br /&gt;
import org.hibernate.event.PersistEvent;&lt;br /&gt;
import org.hibernate.event.PostLoadEvent;&lt;br /&gt;
import org.hibernate.event.PreLoadEvent;&lt;br /&gt;
import org.hibernate.event.RefreshEvent;&lt;br /&gt;
import org.hibernate.event.ReplicateEvent;&lt;br /&gt;
import org.hibernate.event.SaveOrUpdateEvent;&lt;br /&gt;
import org.hibernate.event.def.DefaultAutoFlushEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultDeleteEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultDirtyCheckEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultEvictEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultFlushEntityEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultFlushEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultInitializeCollectionEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultLoadEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultLockEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultMergeEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultPersistEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultPostLoadEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultPreLoadEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultRefreshEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultReplicateEventListener;&lt;br /&gt;
import org.hibernate.event.def.DefaultSaveOrUpdateEventListener;&lt;br /&gt;
import org.hibernate.mapping.Map;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    HibernateUtil hibernateUtil = new HibernateUtil();&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table Product(id int, name varchar, description varchar, price decimal(6,2), supplierid int)&amp;quot;);&lt;br /&gt;
    hibernateUtil.executeSQLCommand(&amp;quot;create table Supplier (id int , name varchar)&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table Software(id int, name varchar, description varchar, price decimal(6,2), supplierid int, version varchar)&amp;quot;);&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;save-update&amp;quot;, new MySaveOrUpdateEventListener());&lt;br /&gt;
    // Apply this event listener (programmatically)&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;auto-flush&amp;quot;, new MyAutoFlushEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;delete&amp;quot;, new MyDeleteEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;dirty-check&amp;quot;, new MyDirtyCheckEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;evict&amp;quot;, new MyEvictEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;flush-entity&amp;quot;, new MyFlushEntityEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;flush&amp;quot;, new MyFlushEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;load-collection&amp;quot;,&lt;br /&gt;
        new MyInitializeCollectionEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;load&amp;quot;, new MyLoadEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;lock&amp;quot;, new MyLockEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;merge&amp;quot;, new MyMergeEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;persist&amp;quot;, new MyPersistEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;post-load&amp;quot;, new MyPostLoadEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;pre-load&amp;quot;, new MyPreLoadEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;refresh&amp;quot;, new MyRefreshEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;replicate&amp;quot;, new MyReplicateEventListener());&lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;save-update&amp;quot;, new MySaveOrUpdateEventListener());&lt;br /&gt;
    Session session = hibernateUtil.getConfiguration().buildSessionFactory().openSession();&lt;br /&gt;
    Supplier superCorp = new Supplier();&lt;br /&gt;
    superCorp.setName(&amp;quot;Supplier1&amp;quot;);&lt;br /&gt;
    session.save(superCorp);&lt;br /&gt;
    Supplier megaInc = new Supplier();&lt;br /&gt;
    megaInc.setName(&amp;quot;Supplier2&amp;quot;);&lt;br /&gt;
    session.save(megaInc);&lt;br /&gt;
    Product mouse = new Product(&amp;quot;Product1&amp;quot;, &amp;quot;first product&amp;quot;, 20.0);&lt;br /&gt;
    mouse.setSupplier(superCorp);&lt;br /&gt;
    superCorp.getProducts().add(mouse);&lt;br /&gt;
    session.flush();&lt;br /&gt;
    Product mouse2 = new Product(&amp;quot;Product2&amp;quot;, &amp;quot;second product&amp;quot;, 22.0);&lt;br /&gt;
    mouse2.setSupplier(superCorp);&lt;br /&gt;
    superCorp.getProducts().add(mouse2);&lt;br /&gt;
    Product keyboard = new Product(&amp;quot;Product3&amp;quot;, &amp;quot;third product&amp;quot;, 30.0);&lt;br /&gt;
    keyboard.setSupplier(megaInc);&lt;br /&gt;
    megaInc.getProducts().add(keyboard);&lt;br /&gt;
    Software webBrowser = new Software(&amp;quot;Web Browser&amp;quot;, &amp;quot;new browser&amp;quot;, 75.0, &amp;quot;2.0&amp;quot;);&lt;br /&gt;
    webBrowser.setSupplier(superCorp);&lt;br /&gt;
    superCorp.getProducts().add(webBrowser);&lt;br /&gt;
    Software email = new Software(&amp;quot;Email&amp;quot;, &amp;quot;email client&amp;quot;, 49.99, &amp;quot;4.1 Edition&amp;quot;);&lt;br /&gt;
    email.setSupplier(megaInc);&lt;br /&gt;
    megaInc.getProducts().add(email);&lt;br /&gt;
    session.flush();&lt;br /&gt;
    session.close();&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from Product&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from Software&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from Supplier&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MySaveOrUpdateEventListener extends DefaultSaveOrUpdateEventListener {&lt;br /&gt;
  public void onSaveOrUpdate(SaveOrUpdateEvent event) {&lt;br /&gt;
    System.out.println(event.getEntity());&lt;br /&gt;
    super.onSaveOrUpdate(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyAutoFlushEventListener extends DefaultAutoFlushEventListener {&lt;br /&gt;
  public void onAutoFlush(AutoFlushEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;AutoFlushEventListener.onAutoFlush(AutoFlushEvent)&amp;quot;);&lt;br /&gt;
    super.onAutoFlush(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyDeleteEventListener extends DefaultDeleteEventListener {&lt;br /&gt;
  public void onDelete(DeleteEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;DeleteEventListener.onDelete(DeleteEvent)&amp;quot;);&lt;br /&gt;
    super.onDelete(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyDirtyCheckEventListener extends DefaultDirtyCheckEventListener {&lt;br /&gt;
  public void onDirtyCheck(DirtyCheckEvent event) {&lt;br /&gt;
    System.out.println(&amp;quot;DirtyCheckEventListener.onDirtyCheck(DirtyCheckEvent)&amp;quot;);&lt;br /&gt;
    super.onDirtyCheck(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyEvictEventListener extends DefaultEvictEventListener {&lt;br /&gt;
  public void onEvict(EvictEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;EvictEventListener.onEvict(EvictEvent)&amp;quot;);&lt;br /&gt;
    super.onEvict(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyFlushEntityEventListener extends DefaultFlushEntityEventListener {&lt;br /&gt;
  public void onFlushEntity(FlushEntityEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;FlushEntityEventListener.onFlushEntity(FlushEntityEvent)&amp;quot;);&lt;br /&gt;
    super.onFlushEntity(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyFlushEventListener extends DefaultFlushEventListener {&lt;br /&gt;
  public void onFlush(FlushEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;FlushEventListener.onFlush(FlushEvent)&amp;quot;);&lt;br /&gt;
    super.onFlush(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyInitializeCollectionEventListener extends DefaultInitializeCollectionEventListener {&lt;br /&gt;
  public void onInitializeCollection(InitializeCollectionEvent event) throws HibernateException {&lt;br /&gt;
    System.out&lt;br /&gt;
        .println(&amp;quot;InitializeCollectionEventListener.onInitializeCollection(InitializeCollectionEvent)&amp;quot;);&lt;br /&gt;
    super.onInitializeCollection(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyLoadEventListener extends DefaultLoadEventListener {&lt;br /&gt;
  public void onLoad(LoadEvent event, LoadType type) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;LoadEventListener.onLoad(LoadEvent,LoadType)&amp;quot;);&lt;br /&gt;
    super.onLoad(event, type);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyLockEventListener extends DefaultLockEventListener {&lt;br /&gt;
  public void onLock(LockEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;LockEventListener.onLock(LockEvent)&amp;quot;);&lt;br /&gt;
    super.onLock(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyMergeEventListener extends DefaultMergeEventListener {&lt;br /&gt;
  public void onMerge(MergeEvent event, Map copiedAlready) {&lt;br /&gt;
    System.out.println(&amp;quot;MergeEventListener.onMerge(MergeEvent,Map)&amp;quot;);&lt;br /&gt;
    // super.onMerge(event, copiedAlready);&lt;br /&gt;
  }&lt;br /&gt;
  public void onMerge(MergeEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;MergeEventListener.onMerge(MergeEvent)&amp;quot;);&lt;br /&gt;
    super.onMerge(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyPersistEventListener extends DefaultPersistEventListener {&lt;br /&gt;
  public void onPersist(PersistEvent event, Map createdAlready) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;PersistEventListener.onPersist(PersistEvent,Map)&amp;quot;);&lt;br /&gt;
    // super.onPersist(event, createdAlready);&lt;br /&gt;
  }&lt;br /&gt;
  public void onPersist(PersistEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;PersistEventListener.onPersist(PersistEvent)&amp;quot;);&lt;br /&gt;
    super.onPersist(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyPostLoadEventListener extends DefaultPostLoadEventListener {&lt;br /&gt;
  public void onPostLoad(PostLoadEvent event) {&lt;br /&gt;
    System.out.println(&amp;quot;PostLoadEventListener.onPostLoad(onPostLoad)&amp;quot;);&lt;br /&gt;
    super.onPostLoad(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyPreLoadEventListener extends DefaultPreLoadEventListener {&lt;br /&gt;
  public void onPreLoad(PreLoadEvent event) {&lt;br /&gt;
    System.out.println(&amp;quot;PreLoadEventListener.onPreLoad(PreLoadEvent)&amp;quot;);&lt;br /&gt;
    super.onPreLoad(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyRefreshEventListener extends DefaultRefreshEventListener {&lt;br /&gt;
  public void onRefresh(RefreshEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;RefreshEventListener.onRefresh(RefreshEvent)&amp;quot;);&lt;br /&gt;
    super.onRefresh(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyReplicateEventListener extends DefaultReplicateEventListener {&lt;br /&gt;
  public void onReplicate(ReplicateEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;ReplicateEventListener.onReplicate(ReplicateEvent)&amp;quot;);&lt;br /&gt;
    super.onReplicate(event);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class NoisySaveOrUpdateEventListener extends DefaultSaveOrUpdateEventListener {&lt;br /&gt;
  public void onSaveOrUpdate(SaveOrUpdateEvent event) throws HibernateException {&lt;br /&gt;
    System.out.println(&amp;quot;SaveOrUpdateEventListener.onSaveOrUpdate(SaveOrUpdateEvent)&amp;quot;);&lt;br /&gt;
    super.onSaveOrUpdate(event);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Save and update event ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;File: Main.java&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
import org.hibernate.HibernateException;&lt;br /&gt;
import org.hibernate.Session;&lt;br /&gt;
import org.hibernate.event.SaveOrUpdateEvent;&lt;br /&gt;
import org.hibernate.event.def.DefaultSaveOrUpdateEventListener;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] args) throws Exception {&lt;br /&gt;
    HibernateUtil hibernateUtil = new HibernateUtil();&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table Product(id int, name varchar, description varchar, price decimal(6,2), supplierid int)&amp;quot;);&lt;br /&gt;
    hibernateUtil.executeSQLCommand(&amp;quot;create table Supplier (id int , name varchar)&amp;quot;);&lt;br /&gt;
    hibernateUtil&lt;br /&gt;
        .executeSQLCommand(&amp;quot;create table Software(id int, name varchar, description varchar, price decimal(6,2), supplierid int, version varchar)&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    hibernateUtil.getConfiguration().setListener(&amp;quot;save-update&amp;quot;, new MySaveOrUpdateEventListener());&lt;br /&gt;
    &lt;br /&gt;
    Session session = hibernateUtil.getConfiguration().buildSessionFactory().openSession();&lt;br /&gt;
    Supplier superCorp = new Supplier();&lt;br /&gt;
    superCorp.setName(&amp;quot;Supplier1&amp;quot;);&lt;br /&gt;
    session.save(superCorp);&lt;br /&gt;
    Supplier megaInc = new Supplier();&lt;br /&gt;
    megaInc.setName(&amp;quot;Supplier2&amp;quot;);&lt;br /&gt;
    session.save(megaInc);&lt;br /&gt;
    Product mouse = new Product(&amp;quot;Product1&amp;quot;, &amp;quot;first product&amp;quot;, 20.0);&lt;br /&gt;
    mouse.setSupplier(superCorp);&lt;br /&gt;
    superCorp.getProducts().add(mouse);&lt;br /&gt;
    session.flush();&lt;br /&gt;
    Product mouse2 = new Product(&amp;quot;Product2&amp;quot;, &amp;quot;second product&amp;quot;, 22.0);&lt;br /&gt;
    mouse2.setSupplier(superCorp);&lt;br /&gt;
    superCorp.getProducts().add(mouse2);&lt;br /&gt;
    Product keyboard = new Product(&amp;quot;Product3&amp;quot;, &amp;quot;third product&amp;quot;, 30.0);&lt;br /&gt;
    keyboard.setSupplier(megaInc);&lt;br /&gt;
    megaInc.getProducts().add(keyboard);&lt;br /&gt;
    Software webBrowser = new Software(&amp;quot;Web Browser&amp;quot;, &amp;quot;new browser&amp;quot;, 75.0, &amp;quot;2.0&amp;quot;);&lt;br /&gt;
    webBrowser.setSupplier(superCorp);&lt;br /&gt;
    superCorp.getProducts().add(webBrowser);&lt;br /&gt;
    Software email = new Software(&amp;quot;Email&amp;quot;, &amp;quot;email client&amp;quot;, 49.99, &amp;quot;4.1 Edition&amp;quot;);&lt;br /&gt;
    email.setSupplier(megaInc);&lt;br /&gt;
    megaInc.getProducts().add(email);&lt;br /&gt;
    session.flush();&lt;br /&gt;
    session.close();&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from Product&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from Software&amp;quot;);&lt;br /&gt;
    hibernateUtil.checkData(&amp;quot;select * from Supplier&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MySaveOrUpdateEventListener extends DefaultSaveOrUpdateEventListener {&lt;br /&gt;
  public void onSaveOrUpdate(SaveOrUpdateEvent event) {&lt;br /&gt;
    System.out.println(event.getEntity());&lt;br /&gt;
    super.onSaveOrUpdate(event);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>