Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Friday, November 23, 2007

java code for Own Save Or Update Event Listener

import java.io.Serializable;
import java.util.*;
import java.sql.*;
import org.hibernate.*;
import org.hibernate.cfg.*;
import org.hibernate.criterion.*;
import org.hibernate.event.*;
import org.hibernate.event.def.*;

public class Main {
public static void main(String[] args) throws Exception {
HibernateUtil.setup("create table User ( id int, username VARCHAR);");
Configuration config = new Configuration();

config.setListener("save-update", new UseringSaveOrUpdateEventListener());

SessionFactory factory = config.configure().buildSessionFactory();
Session session = factory.openSession();

Transaction tx = session.beginTransaction();

session.saveOrUpdate(new User("R1"));
session.saveOrUpdate(new User("R2"));

tx.commit();

session.close();

}
}
class UseringSaveOrUpdateEventListener extends DefaultSaveOrUpdateEventListener
{
public Serializable onSaveOrUpdate(SaveOrUpdateEvent event)
throws HibernateException {
if( event.getObject() instanceof User ) {
User user = (User)event.getObject();
System.out.println("Preparing to save or update user " + user.getUsername());

if( user.getUsername().equalsIgnoreCase("R1")) {
System.out.println("Conventional user not recorded.");

// Here we prevent the invocation
// of saveOrUpdate on the Session from having
// any effect on the database!
return null;
}
}

return super.onSaveOrUpdate(event);
}
}




/////////////////////////////////////////////////////////////////////////


PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">












/////////////////////////////////////////////////////////////////////////

public class User
{
private int id;
private String username;

public User(){
}

public User(String u){
username = u;
}

public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
}

No comments: