User-defined ID Generator
PO
Package com.dsii.hibernate.po;
Public class company {
Private string id;
PRIVATE STRING NAME;
PRIVATE STRING YEAR;
Public company () {
}
Public string getId () {
Return ID;
}
Public void setid (String ID) {
THIS.ID = ID;
}
Public string getname () {
Return Name;
}
Public void setname (String name) {
THIS.NAME = Name;
}
Public string getYear () {
Return Year;
}
Public void setYear (String year) {
THIS.YEAR = year;
}
}
Xml
XML Version = "1.0"?>
UID_TABLE param>
Next_hi_value_column param>
c param>
generator>
id>
clas>
hibernate-maping>
Customized ID Generator
Package com.dsii.hibernate.po;
Import java.io.serializable;
Import java.sql.sqlexception;
Import java.util.properties;
Import net.sf.hibernate.hibernateException;
Import net.sf.hibernate.diaalect.diand;
Import net.sf.hibernate.Engine.SessionInTementor;
Import net.sf.hibelnate.type.type;
Import net.sf.hibernate.util.propertieshelper;
Import org.apache.commons.logging.log;
Import org.apache.commons.logging.logfactory;
Import net.sf.hibernate.id.tableGenerator;
Public class customizedidgenerator extends TableGenerator {
PRIVATE STRING Prefix;
Private static final log log = logfactory.getlog (CustomizedIdgenerator.class);
Public Void Configure (Type Type, Properties Params, Dialect D) {
Super.configure (Type, Params, D);
Prefix = params.getProperty ("prefix") == NULL? "pre":
Params.GetProperty ("prefix");
}
Public Synchronized Serializable Generate (SessionImplementor Session,
Object obj) throws Sqlexception,
HibernateException {
Integer integer = (integer) super.generate (session, obj);
Return Prefix Integer;
}
}
Bean
Package com.dsii.hibernate.po;
Import net.sf.hibernate. *;
Import Net.sf.hibiBernate.cfg.configuration;
Import net.sf.hibernate.tool.hbm2ddl.schemaExport;
Public class testcompany {
Private static sessionFactory _SESSIONS = NULL;
STATIC {
Try {
Configuration CFG = New Configuration ();
cfg.addclass (company.class);
SchemaExport dbexport = new schemaexport (CFG);
Dbexport.create (true, true);
_SESSIONS = cfg.buildsessionFactory ();
} catCH (mappingexception e) {
E.PrintStackTrace ();
} catch (hibernateException e) {
E.PrintStackTrace ();
}
}
Public static void main (string [] args) throws hibernateException {
System.out.println ("-------------- begin");
Company c1 = new company ();
C1.setname ("DSII");
C1.SETYEAR ("2004");
Company C2 = New Company ();
C2.setname ("DSII");
C2.SETYEAR ("2004");
Session session = _SESSIONS.OPENSESSION ();
Transaction TX = NULL;
Try {
Tx = session.begintransaction (); session.save (C1);
Session.save (C2);
TX.comMit ();
} catch (hibernateException he) {
IF (tx! = null) {
TX.rollback ();
}
Throw He;
} finally {
session.close ();
}
System.out.println ("-------------- End");
}
}