본문 바로가기

Hibernate

SPRING BOOT COMMUNICATIONS LINK FAILURE WITH MYSQL AND HIBERNATE http://blog.netgloo.com/2015/07/09/spring-boot-communications-link-failure-with-mysql-and-hibernate/ 더보기
Hibernate4 org.hibernate.MappingException: Unknown entity 아래와 같은 에러가 뜬다면... org.hibernate.MappingException: Unknown entity: ~~~~~~~~~~~~~at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:1145)at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1358)at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:116)at org.hibernate.event.internal.De.. 더보기
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] 구분자 열 사용하기 테이블에 구분자 열을 추가하여 구분자 열로 Model을 생성하는 방법이 있다.우선 Super 클래스 에서는 아래와 같이 작성 @DiscriminatorColumn (name = "type",discriminatorType = DiscriminatorType.STRING) public abstract class Info { Child 클래스 에서는 아래와 같이 작성 @DiscriminatorValue (value = "MOVIE") public class MovieInfo extends Info 이와 같이 사용하면 되고 상속 전략에 따라서 @Inheritance 바꾸어서 사용하자 더보기
[Hibernate] HQL문 몇가지 정리 1. 특정 Column의 가장 높은 값을 가져오는 구문%s.score in (SELECT MAX(%s2.score) FROM %s %s2 WHERE %s2.userNo = :userNo) 2. 특정 Column의 내림차순으로 정리WHERE interest.interestNo = ANY(SELECT s.interestNo FROM InterestUserScore s WHERE s.userNo = :userNo ORDER BY s.score DESC) 3. Left JoinstringBuffer.append("SELECT DISTINCT d FROM Drama d " + "LEFT JOIN d.genreList genre " + "LEFT JOIN d.actorList actor " + "LEFT JOIN .. 더보기
[SQL] 최고값을 가진 항목 가져오는 sql 문 테이블 구조id-----------date-------------value SQL 문 select * from table where date in (select max(date) from table) 더보기
[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; 더보기
[Hibernate] Criteria로 List를 가져올때 중복되는 값이 있다면... List를 가져오는데 중복되는 값을 가져온다면... 아래의 코드를 입력해주자~! critera.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); 주의 사항critera.setMaxResults() 함수와 같이 사용하는 경우에 MaxResult 만큼 가져온 후에 중복값을 제거하는 듯하다. 그래서 제대로 동작하지 못하기에HQL로 작성해서 사용하는 것이 더 좋다. 더보기