diff --git a/querydsl-scala/src/main/scala/com/mysema/query/scala/Queries.scala b/querydsl-scala/src/main/scala/com/mysema/query/scala/Queries.scala new file mode 100644 index 000000000..c6dfb8ca5 --- /dev/null +++ b/querydsl-scala/src/main/scala/com/mysema/query/scala/Queries.scala @@ -0,0 +1,28 @@ +package com.mysema.query.scala; + +import com.mysema.query._; +import com.mysema.query.types._; + +object Queries { + + implicit def toScalaProjectable(qry: Projectable) = new ScalaProjectable(qry) + + implicit def toScalaProjectable[T](qry: SimpleProjectable[T]) = new SimpleScalaProjectable[T](qry); + +} + +class ScalaProjectable(val qry: Projectable) { + + def unique[T](e: Expression[T]) = Option(qry.uniqueResult(e)) + + def single[T](e: Expression[T]) = Option(qry.singleResult(e)) + +} + +class SimpleScalaProjectable[T](val qry: SimpleProjectable[T]) { + + def unique = Option(qry.uniqueResult()) + + def single = Option(qry.singleResult()) + +} \ No newline at end of file diff --git a/querydsl-scala/src/test/scala/com/mysema/query/scala/QueriesTest.scala b/querydsl-scala/src/test/scala/com/mysema/query/scala/QueriesTest.scala new file mode 100644 index 000000000..db0bd8dbb --- /dev/null +++ b/querydsl-scala/src/test/scala/com/mysema/query/scala/QueriesTest.scala @@ -0,0 +1,35 @@ +package com.mysema.query.scala; + +//import com.mysema.query._ +import com.mysema.query.types._ +import com.mysema.query.scala.Queries._ +import com.mysema.query.scala.Conversions._ + +import com.mysema.query.jpa.impl.JPAQuery +import com.mysema.query.scala.Conversions._ + +import javax.persistence._; +import org.junit.{ Test, Before, After }; +import org.junit.Assert._ + +class QueriesTest { + + var entityManager: EntityManager = _; + val user = alias(classOf[User]) + val department = alias(classOf[Department]) + val company = alias(classOf[Company]) + + @Before + def before { + var entityManagerFactory = Persistence.createEntityManagerFactory("hsqldb") + entityManager = entityManagerFactory.createEntityManager() + } + + @Test + def Unique { + query from(user) unique(user) getOrElse(new User()); + } + + def query() = new JPAQuery(entityManager) + +} \ No newline at end of file