Try to use Hibernate events configured through Spring to fire changes to the model.
[cdmlib.git] / cdmlibrary / src / eu / etaxonomy / cdm / control / hibernate / CdmManager.java
1 package eu.etaxonomy.cdm.control.hibernate;
2
3
4 import java.util.Calendar;
5 import org.apache.log4j.Logger;
6
7 import eu.etaxonomy.cdm.model.name.*;
8 import eu.etaxonomy.cdm.strategy.BotanicNameCacheStrategy;
9
10 import org.hibernate.Session;
11 import org.hibernate.Transaction;
12
13
14 public class CdmManager {
15 static Logger logger = Logger.getLogger(CdmManager.class);
16
17
18 public CdmManager() {
19 Session s = HibernateUtil.sessionFactory.openSession();
20 }
21
22 /**
23 * @param args
24 */
25 public static void main(String[] args) {
26 System.out.println("Start");
27 logger.info("Start");
28 CdmManager mgr = new CdmManager();
29 logger.info("Manager Created");
30 if (true) {
31 mgr.createAndStoreTaxonName( "genus1", Calendar.getInstance());
32 }
33 logger.info("close Factory");
34 HibernateUtil.sessionFactory.close();
35 logger.info("End");
36 System.out.println("End");
37 }
38
39 private void createAndStoreTaxonName(String genus, Calendar theDate) {
40 logger.info("Start create");
41
42 Session session = HibernateUtil.currentSession();
43 logger.info("Session created");
44
45 Transaction tx = session.beginTransaction();
46 logger.info("Begin Transaction");
47
48 TaxonName tn = new TaxonName(new BotanicNameCacheStrategy());
49 NameRelationship tnr = new NameRelationship();
50 session.save(tnr);
51 tnr.setFromName(tn);
52 tnr.setToName(tn);
53 tnr.setType(NameRelationshipType.LECTOTYPE);
54
55 tn.setGenus(genus);
56 tn.setUpdatedWhen(theDate);
57 session.save(tn);
58
59 session.save(tn);
60 logger.info("TaxonName saved");
61 tx.commit();
62 logger.info("commited");
63 HibernateUtil.closeSession();
64 logger.info("session closed");
65
66 }
67
68 }