case object transaction { import java.sql.Connection def apply[T](query: => T):Option[T] = { val conn:Connection = play.db.DB.getConnection val auto:Boolean = conn.getAutoCommit try { conn.setAutoCommit(false) Some(query) } catch { case e: Exception => conn.rollback None } finally { conn.commit conn.setAutoCommit(auto) } } }