package org.wamblee.mythtv;
-import java.sql.SQLException;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.hibernate.HibernateException;
-import org.hibernate.Session;
-import org.hibernate.criterion.Expression;
-import org.springframework.orm.hibernate3.HibernateCallback;
-import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
*
*/
-public class RecordingDatabase extends HibernateDaoSupport {
+public class RecordingDatabase {
private static final Log LOG = LogFactory.getLog(RecordingDatabase.class);
-
- public RecordingDatabase() {
- // Empty
- }
- public void init() {
- /*
- for (Recording recording: (List<Recording>)getHibernateTemplate().loadAll(Recording.class) ) {
- LOG.info("Found recording " + recording);
- }
- LOG.info("After listing recordings");
- */
+ private EntityManager _entityManager;
+
+ public RecordingDatabase(EntityManager aEntityManager) {
+ _entityManager = aEntityManager;
}
public Recording findRecording(final String aName) {
- List<Recording> result = (List<Recording>) getHibernateTemplate().execute(new HibernateCallback() {
- /* (non-Javadoc)
- * @see org.springframework.orm.hibernate3.HibernateCallback#doInHibernate(org.hibernate.Session)
- */
- public Object doInHibernate(Session aSession) throws HibernateException, SQLException {
- return aSession.createCriteria(Recording.class).add(Expression.eq("_basename", aName)).list();
- }
- });
+ Query query = _entityManager.createQuery(
+ "select r from Recording r where r.basename = ?1");
+ query.setParameter(1, aName);
+ List<Recording> result = query.getResultList();
if ( result.size() > 1 ) {
throw new RuntimeException("More than two recordings returned");
}
}
public void update(Recording aRecording) {
- getHibernateTemplate().update(aRecording);
+ _entityManager.merge(aRecording);
}
}