1 : [Config] Table
boardCode PK
N: [Board] Table
BoardCode FK
Board를 조회 할 경우 항상 Config와 함께 JOIN이 필요 할 경우 Config Class 는 특별한 설정이 필요 없다.
Config 조회 할경우에는 단순히 Config 만 조회한다.
Board Class
boardCode 변수를 생성할 필요 없다.
// fetch=FetchType.LAZY: 요청할때만 JOIN한다., EAGER: 무조껀 JOIN한다. // cascade=CascadeType=ALL, MERGE, PERSIST, REFRESH, REMOVE @ManyToOne(fetch=FetchType.LAZY, cascade = {CascadeType.REMOVE}, targetEntity=Config.class ) @JoinColumn(name = "boardCode") @ForeignKey(name = "FK_CONFIG_BOARD_CODE") private Config config; // getter, setter 만들어준다.
JOIN 시 FK로 Where을 걸 경우
Session session = getSession(); Criteria crit = session.createCriteria(Board.class, "B"); crit.createCriteria("Config", "C"); crit.add(Restrictions.eq("C.boardCode", boardCode)); crit.setFirstResult(firstIndex); crit.setMaxResults(pageSize); crit.addOrder(Order.desc("regdate"));