Play Framework2 Scala 에서도 JPA를 지원한다. 설치부터 사용방법 까지 간단하게 설명하자면..
(참고 URL =https://www.playframework.com/documentation/2.4.0/JavaJPA)
우선은 라이브러리를 설치한다.
libraryDependencies ++= Seq(
javaJpa,
"org.hibernate" % "hibernate-entitymanager" % "4.3.9.Final" // replace by your jpa implementation
)
그리고 persistence.xml 파일은 생성하고 conf/MATA-INF 폴더에 넣자 없다면 생성해서 넣어두자
그리고 파일내용은 아래와 같이 작성한다.
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<non-jta-data-source>DefaultDS</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
</properties>
</persistence-unit>
</persistence>
그리고 application.conf 파일에 아래의 내용을 추가한다.
jpa.default=defaultPersistenceUnit
Mysql이나 등등 데이터베이스가 연동이 완료 되어있다면 그대로 애노테이션을 활용하여 사용이 가능하다. 관련 라이브러리는
import play.db.jpa._
import scala.collection.JavaConversions._
정도가 있다.
그리고 Java버전에서는 @Transactional 이 잘 작동하는 것 같지만 Scala에서는 동작을 잘하는 것 같다 본인은..
JPA.withTransaction(new F.Function0[List[Child]]{
def apply () = JPA.em().createQuery("FROM Child",classOf[Child]).getResultList.toList
})
이렇게 감싸줘서 Transaction을 적용한다.
'Development > Web & Server' 카테고리의 다른 글
[Play Framework2] JPA & Json model (0) | 2015.06.11 |
---|---|
[Play Framework2] Json (0) | 2015.06.01 |
[Play Framework2] WebSockets (0) | 2015.05.26 |
[Play Framework2] Comet sockets (0) | 2015.05.25 |
[Play Framework2] Streaming HTTP responses (0) | 2015.05.25 |