java - Insert Data only once after Hibernate started -


i'm using hibernate 4.1.2

and want insert data table.

i know can realized sql in hibernate configuration in way:
<property name="hibernate.hbm2ddl.import_files" value="/file1.sql,/file2.sql"/>.

but, there other ways insert automatically data once in java code after hibernate started?

i want this:

  public role getrolebyname(enumrole name)    {     return (role) sessionfactory.getcurrentsession()     .createquery("from role name   = :name")     .setparameter("name", name).uniqueresult();   }   public void insertroles(){ for(enumrole role:enumrole.values()) {    role r=getrolebyname(role);    if(r==null)    {        r=new role();        r.setname(role);        r.setdescription(role.getdescription());        sessionfactory.getcurrentsession().save(r);    } } 

enumrole:

public enum enumrole {  role_client("РОЛЬ КЛИЕНТА"), role_admin("РОЛЬ АДМИНСТРАТОРА"), role_consumer("РОЛЬ КОМПАНЬОНА"), role_anonymous("НЕ АВТОРИЗОВАННЫЙ ПОЛЗОВАТЕЛЬ");  enumrole(string descriptin) {     this.descriptin=descriptin; }  public string getdescription() {     return this.descriptin; } private string descriptin; } 

you need create spring bean @postconstruct annotated method , example create transaction using platformtransactionmanager:

@service public class anybean  {   @autowired   private platformtransactionmanager transactionmanager;   @autowired   private sessionfactory sessionfactory;    @postconstruct   private void init() {     transactiontemplate transactiontemplate = new transactiontemplate(transactionmanager);     transactiontemplate.execute(new transactioncallback<object>() {       @override       public object dointransaction(transactionstatus transactionstatus) {         // here code         for(enumrole role:enumrole.values())         {           role r = getrolebyname(role);           if(r==null)           {             r=new role();             r.setname(role);             r.setdescription(role.getdescription());             sessionfactory.getcurrentsession().save(r);           }         }                     return null;       }     });   } } 

i hope helped.


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -