본문 바로가기

JPA

[Play Framework2] JPA & Json model Java는 POJO 객체로 JPA와 Json이 아주 자유로웠지만 Scala에서는 정말 헤매는 부분이 많았다. 그리고 본인이 가장 간편하다고 생각하는 방법을 설명하겠다. 특별히 Play Framework2 이외에 다른 라이브러리를 사용하지 않고 내부적인 라이브러리를 통해 쉬운 방법을 찾았다. (one to many 와 many to many 는 아직 방법을 찾지 못함..) import play.db.jpa._import javax.persistence._import play.api.libs.json._import play.api.libs.functional.syntax._import scala.annotation.meta.field @Entity@Table (name = "class")case class .. 더보기
[Play Framework2] JPA 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 폴더에 넣자 없다면 생성해서 넣어두자그리고 파일내용은 아래와 같이 작성한다. org.hibernate.jpa.HibernateP.. 더보기
Hibernate Incorrect datetime value Incorrect datetime value 잘 입력되었던 데이터가 갑자기 위와 같은 문구를 보여주면서 에러를 내기 시작했다. 이유는... TIMESTAMP 때문이다. TIMESTAMP의 범위는 1970-01-01 부터 2038-01-19 까지라서 1970 이하 날짜를 입력하지 못하는 것이다. 자세한 사항은 여기서 살펴보자~! 더보기
org.hibernate.hibernateexception identifier of an instance of was altered from to 위와 같은 에러가 발생했을 때는 Model의 Id 부분을 확인하자 본인의 경우 착각으로 인해 Id 값을 바꾸려고 하다보니 생긴 에러였다. 본인의 경우 Model의 ID부분을 다른 타입으로 변경하여 의도적으로 문법을 틀리게 하여 찾았다. 더보기
[Hibernate] Property 상속하여 매핑하기 가장 간단한 방법이다. 여러가지 방법이 있지만 그 중 @MappedSuperclass 것을 사용해보겠다. 사용 용도는 주로 중복되는 프로퍼티가 많을때 괜찮은 방법인듯하다. @MappedSuperclasspublic abstract class UserScore {//Getter & Setter @Id@GeneratedValue@Column (name = "score_no")private Integer scoreNo;@Column (name = "user_no")private Integer userNo;@Column (name = "score")private Integer score; }//end UserScore Class 상속하여 이렇게 쓰면 끝이다.~! @Entity@Table (name = "dram.. 더보기
[Hibernate] Embedded 사용하기 공통적으로 들어가는 Column 값이 있다면 이 값을 따로 Class로 만들어서 사용하면 좋다.본인의 경우 Image 관련 값을 Class로 만들어서 사용했다 사용방법은 간단하다 아래와 같이 NHImageFile Class에 맴버변수를 선언하고이걸 사용하는 부분에서 @Embedded 애노테이션과 함께 선언해주면 끝~! @Embeddable public class NHImageFile {Gettter & Setter} @Embedded private NHImageFile imageFile; 더보기
[Play Framework] No EntityManager bound to this thread. Try wrapping this call in JPA.withTransaction, or ensure that the HTTP context is setup on this thread. 테스트를 하다가 JPA관련 테스트를 진행하면 다음과 같은 에러가 발생한다....이유는 Transaction과 관련이 있었다. 현재 테스트 하는 Thread가 binding?이 되지 못해서 생기는 오류인듯 하다. 해결방법은 간단하다. [error] Test ServiceTest.deviceServiceTest failed: java.lang.RuntimeException: No EntityManager bound to this thread. Try wrapping this call in JPA.withTransaction, or ensure that the HTTP context is setup on this thread.[error] at play.db.jpa.JPA.em(JPA.java:55)[erro.. 더보기
[Play Framework] JPA라이브러리가 보이지 않을때!!! 공식홈페이지에서 JPA 설정과 같이.. 설정과 모델을 생성했는데 JPA라는 클래스 파일이 호출이 안되는 문제가 있었다.. play mvm:update 를 하는 등등 막해봤지만 import play.db.jpa.JPA; 라이브러리가 나오지 않아서 컴파일 에러가 계속 발생하였다.. 해결하는 방법은 아주아주 간단하다~!!!! play로 접속한뒤... eclipse라고 다시 하면 알아서 라이브러리가 추가되어있다.!!!! 이걸가지고 2시간이나 삽질하고 있었다... 더보기
[Play Framework] JPA이용하여 Mysql 연동하기 1. 라이브러리 추가하기!! (build.sbt파일) libraryDependencies ++= Seq(//다른 라이브러리...... javaJpa, "mysql" % "mysql-connector-java" % "5.1.26", "org.hibernate" % "hibernate-entitymanager" % "4.1.2.Final" ) 2. application.conf 파일 설정하기 대부분은 주석을 해제하면 됩니다. # Database configuration# ~~~~~# You can declare as many datasources as you want.# By convention, the default datasource is named `default`#db.default.driver=co.. 더보기