본문 바로가기

hibernate4

프레임워크 사용을 위한 프레임워크 Matt Raible 이라는 사람이 있다. 이 사람이 Equinox 라는 것을 만들었다. Equinox는 Matt Raible 이 만든 AppFuse 로부터 파생되었다. Equinox 홈페이지에는 Equinox 를 다음과 같이 설명하고 있다. Equinox is lightweight version of AppFuse. 그럼 Equinox 를 잘 알려면 AppFuse 를 조금은 알 필요가 있다. AppFuse 에 대해서 내가 처음 접한 사연 이렇다. 프로젝트를 위해서 Struts 와 Hibernate를 사용한 예제나 프레임웍이 필요했다. 실제로 나는 Google 에서 Struts 와 Hibernate 를 키워드로 검색을 했고, 바로 AppFuse를 처음 접하게 되었다. AppFuse 의 사이트에는 다음과 .. 2008. 3. 4.
Hibernate에서 Equals 와 HashCode 자바의 Collection과 관계형 DB (Hibernate)는 통일된 방법으로 객체의 구분을 수행하는데 매우 연관되어 있다. 관계형 DB에서 이는 PK로 하고, 자바에서는 객체의 equals()와 hashCode() 메소드를 사용한다. 다음은 저장(persistent) 클래스에서 equals()와 hashCode()를 구현하는 최적의 방안을 설명한다. 왜 equals()와 hashCode()가 중요한가 보통 대부분의 자바 객체는 객체의 식별자에 근거하여 내장된 equals()와 hashCode()를 제공한다. 따라서 객체에 대해서 new() 를 할 때마다 모든 객체는 서로 다르게 마련이다. 이것인 일반적으로 보통의 자바 프로그램에서 원하는 것이다. 그리고 만일 모든 객체가 메모리에 있다면 이는 좋은 모.. 2008. 2. 21.
Persistence를 어떻게 번역해야하나? EJB 3 가 나오면서 Java Persistence API (JPA)가 등장하게 되었다. Persistent 는 Cobuild 사전에 다음과 같이 정의되어 있다. 1. Something that is persistent continues to exist or happen for a long time; used especially about bad or undesirable states or situations. 2. Someone who is persistent continues trying to do something, even though it is difficult or other people are against it. 첫번째는 별로 안좋은 의미로 '완고한', '고집이 센' 정도로 받아들일 수 .. 2008. 2. 14.
Hibernate3 사용시 Join 테이블에 FK 이외의 컬럼이 있는 경우 매핑 ORM을 사용하다 보면 항상 겪는 문제지만, 다대다(many-to-many) 관계를 객체와 어떻게 매핑할 것인가이다. 물론, 객체 입장에서는 두 객체간의 Collection 문제지만, DB 입장에서는 항상 Join 테이블이 끼어 있어서 이를 해결하기간 웬만해서는 쉽지 않다. Hibernate3는 EJB3의 JPA(Java Persistence API)의 구현체로 이에 대한 문제를 다음과 같이 해결하고 있다. 위의 그림과 같이 Category에 Item을 추가할 때마다 어떤 정보가 필요하다고 가정하자. 위의 구조를 자바 클래스에 매핑하는 데에 두가지 방법이 있다. 첫번째 방법은 join 테이블에 대한 중간의 entity 클래스를 사용하여 일대다(one-to-many) 관계로 매핑하는 것이다. 두번째 방법은.. 2008. 2. 13.
반응형