본문 바로가기

하이버네이트

[Hibernate] Criteria로 List를 가져올때 중복되는 값이 있다면... List를 가져오는데 중복되는 값을 가져온다면... 아래의 코드를 입력해주자~! critera.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY); 주의 사항critera.setMaxResults() 함수와 같이 사용하는 경우에 MaxResult 만큼 가져온 후에 중복값을 제거하는 듯하다. 그래서 제대로 동작하지 못하기에HQL로 작성해서 사용하는 것이 더 좋다. 더보기
[Hibernate] update 와 merge 차이점 update 의 사용방법this.mSessionFactory.getCurrentSession().update(object);object.set~~~~~~~ merge 의 사용방법object.set~~~~~~this.mSessionFactory.getCurrentSession().merge(object); 2개의 차이점을 보면 이미 영속성(Persistent)상태이면 상황에따라 update가 되지만 그렇지 않을경우 update 함수를 통해서 영속성 상태를 가지게 만들고 그 상태에서 수정을 해야 DB에 update가 적용이 됩니다. 하지만 merge의 경우 영속성이 아닌 객체 예를들면 다른 곳에서 전달받은 객체를 DB에 적용하고 싶을때 사용하면 적합히지 않을까 생각이 됩니다. merge의 경우 id가 없는 .. 더보기
org.jasypt.exceptions.EncryptionOperationNotPossibleException 오류 암호화 라이브러리를 사용하니 다음과 같은 오류가 떴다... Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine 해결방법은 간단하다.(본인의 경우 OS X 이다.)1. 우선 여기로 이동해서 파일을 받는다.!!http.. 더보기
[Hibernate] DB 특정 값 암호화하여 사용하기~! (Jasypt) Hibernate4를 기준으로 설명을 하겠습니다. 1. 라이브러리 추가 org.jasyptjasypt-hibernate41.9.1 2. hibernate 설정 PBEWithMD5AndTripleDES jasypt 4 strongHibernateStringEncryptor 3. 사용하기 (2번에서 registerdName = strongHibernateStringEncryptor 이다.) @TypeDef( name="encryptedString", typeClass=EncryptedStringType.class, parameters= { @Parameter(name="encryptorRegisteredName", value="strongHibernateStringEncryptor") }) public cl.. 더보기
[Hibernate] Date 검색 Date를 기준으로 검색이 필요해서 아래와 같이 검색을 작성하여 검색을 하였다. .createQuery("FROM Menu menu WHERE :startDate 더보기
[Spring Framework] Hibernate 4 연동하기 1. 라이브러리 추가하기~! (Pom.xml ) org.hibernate hibernate-core 4.2.8.Final 2. 하이버네이트 설정 아래와 같은 설정을 추가해줍니다. ${jdbc.dialect} true 3. 위에 설정파일중에 local_db.properties 라고 파일을 연동하였는데 임의로 이름을 변경을 하거나 다음 이름과 같은 파일을 만들고 jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.dialect=org.hibernate.dialect.MySQLDialectjdbc.url=jdbc:mysql://DB 주소?autoReconnect=true&interactiveClient=true&autoReconnectForPools=truejdbc.userna.. 더보기
[HQL] 하이버네이트 쿼리문 작성 final Query query = this.mSessionFactory.getCurrentSession().createQuery("from " + PostLike.class.getName() + " where likeId = :likeId "); query.setParameter("likeId", postLikeId); query.uniqueResult(); 위의 코드와 같이 쿼리문을 작성할때 :likeId 라고 입력하고 query.setParameter("likeId", postLikeId); 이와 같이 값을 대입해주면 가독성 좋게 구현할할 수 있다. 더보기