Last inserted id in hibernate

Getting the last inserted record id of a database table in java using hibernate

 

JavaBean

package auto;
public class User  implements java.io.Serializable {


     private int uid;
     private String uname;
    
    public User() {
    }

    public User(String uname) {
        this.uname = uname;
    }

    public User(int uid, String uname) {
        this.uid = uid;
        this.uname = uname;
      
    }

     
    public User(int uid) {
        this.uid = uid;
    }
    public User(int uid, String uname) {
       this.uid = uid;
       this.uname = uname;
    }
  
    public int getUid() {
        return this.uid;
    }
   
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getUname() {
        return this.uname;
    }
   
    public void setUname(String uname) {
        this.uname = uname;
    }

}

Mapping File

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 1 May, 2012 5:12:20 PM by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
    <class name="auto.User" table="user" catalog="mydb">
        <id name="uid" type="int">
            <column name="uid" />
            <generator class="increment" />
        </id>
        <property name="uname" type="string">
            <column name="uname" length="20" />
        </property>
     </class>
</hibernate-mapping>

 

public class Main {

    /**
     * @param args the command line arguments
     */
     public static void main(String[] args) {
     SessionFactory sf;
     Session s;
     Transaction tx;
     Configuration  cfg=new Configuration().configure();
     sf=cfg.buildSessionFactory();
     s=sf.openSession();
     tx=s.beginTransaction();
     User u=new User("ram");
     s.save(u);
     tx.commit();
     s.flush();
     System.out.println("Last Generated Id: "+u.getUid());    
     s.close();
  
    }

}

If suppose that you have a third field in which want to insert alphanumeric value, which is generated by concatenating generated last id;


public class Main {

    /**
     * @param args the command line arguments
     */
     public static void main(String[] args) {
     SessionFactory sf;
     Session s;
     Transaction tx;
     Configuration  cfg=new Configuration().configure();
     sf=cfg.buildSessionFactory();
     s=sf.openSession();
     tx=s.beginTransaction();
     User u=new User("ram");
     s.save(u);
     tx.commit();
     s.flush();
     s.close();
     s=sf.openSession();
     tx=s.beginTransaction();
     u.setId("uoo1"+u.getUid);   
     s.update(u);
     tx.commit();
     s.flush();
     s.close();
    }

}


Note: must be add id field in bean class and  mapping for 'id' field in mapping file

Comments

Popular posts from this blog

What is Struts Framework?

HOW TO ACCESS SESSION IN STRUTS 2 WITH EXAMPLE

Why java uses both compiler and interpreter?