2012-12-17 4 views
0

예를 들어, "goods"테이블이 있는데, "categoryId"컬럼이 있습니다.이 컬럼은 ID와 이름이있는 "카테고리"테이블입니다. 나는 goods 개체를 만들 때JPA는 새 엔티티를 작성하고 그 관계를 연결하는 방법

, 나는 namecategoryId 손에있다, 나는 goods 기업에 대한 "setCategory"함수를 호출하고, 결국 데이터베이스에 저장 한 후 먼저 카테고리 엔티티를 조회해야하고, .

내게 좋지는 않지만 goods 엔티티를 만들 때마다 ID 엔티티를 먼저 쿼리해야합니다. 그 일을하기위한 쉬운 고성능 방법이 궁금합니다.

답변

0

범주가 마스터 데이터라고 가정하면 메모리에 범주를 캐시 할 수 있습니다. 캐시에서 범주 개체 검색은 성능이 우수합니다. Hibernate은 양호한 캐싱 지지력을 갖는다. Second Level Cache, Query Cache 등. 나는 같은 것을 활용할 것을 조언합니다.

ehcache은 캐싱에 사용할 수있는 또 다른 옵션입니다.

0

카테고리 엔티티는 cached입니다. 따라서 각 '상품'엔티티가 다른 카테고리를 참조하지 않는 한 허용 가능한 실적을 얻게됩니다.

걱정되는 경우 EntityManager.getReference을 사용하여 카테고리 엔티티의 간단한 버전을 검색 할 수 있습니다.

0

성능 문제가 없다면 아무 일도하지 마십시오! ID로 카테고리를 쿼리하고 상품에 추가하는 것이 좋습니다. 존재하지 않는 문제를 찾으려고하지 마십시오.

관련 문제