본문 바로가기

Java

[Hibernate] 원하는 값만 가져오기~! DB의 구조를 잘못 잡아서 그럴수도 있지만... 본인의 경우 부모와 자식 관계?? 를 가진 관계에서 서로를 가져야하는 경우가 생겼다. 그래서 그냥 실행할경우 무한정 반복하다가 Overflow라는 오류로 죽게 되어... 부모가 자식을 가져오는 경우에는 자식이 부모를 가져올수 없게 다양한 시도를 했지만.. 실패를 하고 부모를 안가져오는 함수와 AOP로.... 대체하였다... 그래서 원하는 값만 가져오는 것이 필요하였다. 방법은 다음과 같다. final Criteria crit = this.mSessionFactory.getCurrentSession().createCriteria(클래스.class);final ProjectionList projectionList = Projections.projectionLi.. 더보기
[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가 없는 .. 더보기
[Android] 릴리즈 버젼이 아무런 이유없이 죽을때... 이클립스에서 단순히 실행할때는 잘되었지만 APK파일로 만들어서 실행할때는 01-16 14:55:37.847: E/AndroidRuntime(23150): Caused by: java.lang.ClassNotFoundException: c~~~~~~01-16 14:55:37.847: E/AndroidRuntime(23150): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)01-16 14:55:37.847: E/AndroidRuntime(23150): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)01-16 14:55:37.847: E/AndroidRuntime(2315.. 더보기
[Spring Framework] AOP 활용하기~! 1. POM파일org.springframework spring-aop ${org.springframework-version} org.aspectj aspectjrt ${org.aspectj-version} org.aspectj aspectjweaver ${org.aspectj-version} 2. Class 파일 (해당 클래스에 구현된 모든 함수에서 User를 리턴하는 함수에 패스워드를 null로 해주는 것 구현)@Aspectpublic class UserAspect { @Around (value = "execution (public 패키지.User 패키지.UserDaoImpl.*(..))")public User removeUserPasswordMethod (final ProceedingJoinPoint.. 더보기
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] Hibernate4 와 EHCache 연동하기~!! 원래 Ehcache와 Hibernate를 따로 쓰고 있는데... 이제서야 따로 쓰지않고 알아서 연동하는게 있다는걸 알았다~!! 1. pom.xml org.hibernatehibernate-ehcache4.2.8.Final 2. hibernate Setting 바꾸기!!!! (아주 중요!!) Hibernate 3.3 and higherFor instance creation: net.sf.ehcache.hibernate.EhCacheRegionFactory To force Hibernate to use a singleton of Ehcache CacheManager: net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory Hibernate 4.xFor Hiberna.. 더보기
[Hibernate] @ManyToMany 자기 자신의 collection가지기~! (친구 리스트를 가지고 있기) 아래의 구조는 User 구조이다.~~ 기본적인 구조다. 그리고 이건 User가 친구리스트를 가지기 위해 필요한 테이블~!! 아래의 코드에서 @ManyToMany 애노테이션과 @JoinTable 설정을 보자~! 다음과 같이 설정을 하면 Hibernate가 알아서 Set으로 관리해준다. @Entity @Table(name = "User") public class User { //Getter & Seeter @Id @Column (name = "id") @GeneratedValue private Integer mId; //나머지 값 설정... @ManyToMany @JoinTable(name = "user_friends", joinColumns = @JoinColumn(name = "user_Id"), inv.. 더보기
[Android] 위도 경도 값으로 주소값 추출하기~! 아주 간단하다 Geocoder라는 클래스를 사용하면 되고 사용할때 생성해야한다.~! 이유는 모르겠지만.. 맴버변수로 사용을 할경우 서버와 연결할수 없다라는 오류와 함께 IOException이 떠서... 아래의 예제는 한개의 주소값만 추출하는 것이다.~! final Geocoder geocoder = new Geocoder(mContext, Locale.getDefault()); final List addressList = geocoder.getFromLocation(latitude, longitude, 1); if (addressList.size() > 0) {final Address address = addressList.get(0);final StringBuffer strBuffer = new Str.. 더보기
[MongoDB] List에 있는 Object의 특정값에 맞는 값 가져오기~! (Spring Data) 아래의 데이터를 참고해서 보자 user, actionList, somethingList, loc, date라는 구성으로 이루어진 단위이다. 여기서actionList와 somethingList에 원하는 값을 가진 데이터만 추출하는 예시를 작성해보겠다.~! { "_id" : ObjectId("52c282c33004e2712c02ee89"), "_class" : "com.gomp.trackingX.nosql.model.TXEvent", "user" : { "mId" : 1, "userId" : "yhjung", "password" : "1234", "email" : "ㅁㅁㅁㅁㅁ", "nickname" : "hooni", "sex" : "MAN", "deviceOS" : "Android", "createDate.. 더보기