Hi,

I have a batch job that sends email to users based on a query in my database.

AppModule starts it up like so in a:

    @Startup
public static void scheduleJobs(PeriodicExecutor executor, final BulkEmailer emailer, @Value("${liftyourgame.url}") String urlIn, @Value("${liftyourgame.subject}") String subjectIn,
                                    final SendEmail sendEmail
    ) {
        final String url = urlIn;
        final String subject = subjectIn;
        executor.addJob(new CronSchedule("0 0/5 * * * ?"),
          "BulkEmailer",
          new Runnable() {
              public void run() {
emailer.execute(url + "/liftyourgame/", subject, sendEmail);
              }
          });
    }

In order to query the database the thread needs a hibernate session of its own as hibernate sessions are per thread.

Currently it creates a session and DAO like so:

public synchronized void execute(String url, String subject, SendEmail sendEmail) {
        // For each mailout fetch url and send mailout

        if (factory == null) {
            Configuration cfg = new Configuration();
            factory = cfg.configure().buildSessionFactory();
        }

        Session session = factory.openSession();
        userDAO = new UserDAOImpl(session);


/////

This means I need to add all of my entities in hibernate.cfg.xml:
<mapping package="com.liftyourgame.application.entities"/>
<mapping class="com.liftyourgame.application.entities.Action"/>
<mapping class="com.liftyourgame.application.entities.DailyQuote"/>
<mapping class="com.liftyourgame.application.entities.Goal"/>
<mapping class="com.liftyourgame.application.entities.Image"/>
<mapping class="com.liftyourgame.application.entities.LygEntity"/>
<mapping class="com.liftyourgame.application.entities.Measure"/>
<mapping class="com.liftyourgame.application.entities.Measurement"/>
<mapping class="com.liftyourgame.application.entities.Role"/>
<mapping class="com.liftyourgame.application.entities.User"/>

Tapestry doesn't seem to need these mappings for my web application as tapestry-hibernate seems to scan all classes in the entities package.

Is there some way I could use tapestry-hibernate to setup a session for my thread?


Regards,

Greg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to