Hibernate set 기반 양 방향 연결
이벤트 - person 의 한 쌍 다 중 연결 만 있 으 면 됩 니 다.그래서 저 희 는 Event. java 와 맵 파일 event. hbm. xml 만 바 꾸 면 됩 니 다.
Event.java
package com.hb.jo;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
public class Event {
private long id;
private String title;
private Date date;
private Set<Person> persons = new HashSet<Person>();
public Set<Person> getPersons() {
return persons;
}
public void setPersons(Set<Person> persons) {
this.persons = persons;
}
// hibernate java ,
public Event()
{
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
}
event.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hb.jo.Event" table="Events">
<id name="id" column="event_id">
<generator class="native"></generator>
</id>
<property name="date" type="timestamp" column="Date"></property>
<property name="title" column="Title"></property>
<set name="persons" table="Person_Events" inverse="true">
<key column="event_id"></key>
<many-to-many column="person_id" class="com.hb.jo.Person"></many-to-many>
</set>
</class>
</hibernate-mapping>
inverse = 'true' 에 대한 설명:
hibenate api
자바 와 의 양 방향 관 계 는 양 끝 에서 인용 을 간단하게 설정 하 는 것 일 뿐 입 니 다.그러나 Hibernate 는 INSERT 와 UPDATE 문 구 를 정확하게 실행 할 충분 한 정보 가 없 기 때문에 양 방향 관 계 를 정확하게 처리 하 는 데 도움 이 필요 합 니 다.연 결 된 한 끝 을 inverse 로 설정 하면 Hibernate 가 연 결 된 이 끝 을 무시 하 는 것 을 알려 줍 니 다. 이 끝 을 다른 한 끝 에 있 는 거울 (mirror) 로 봅 니 다.이것 이 바로 필요 한 모든 정보 입 니 다. Hibernate 는 이 정 보 를 이용 하여 네 비게 이 션 모델 을 데이터베이스 schema 로 옮 길 때의 모든 문 제 를 처리 합 니 다.당신 은 이 직관 적 인 규칙 만 기억 해 야 합 니 다. 모든 양 방향 관 계 는 한 끝 이 inverse 로 설정 되 어야 합 니 다.한 쌍 의 다 중 관련 에서 그것 은 다 중 (many) 을 대표 하 는 쪽 이 어야 한다.그리고 다 대 다 (many - to - many) 관련 에서 한 끝 을 선택 할 수 있 습 니 다. 왜냐하면 두 끝 사이 에 차이 가 없 기 때 문 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JPA] 즉시로딩(EAGER)과 지연로딩(LAZY) (왜 LAZY 로딩을 써야할까?) (1)Proxy는 이 글의 주제인 즉시로딩과 지연로딩을 구현하는데 중요한 개념인데, 일단 원리는 미뤄두고 즉시로딩과 지연로딩이 무엇인지에 대해 먼저 알아보자. 눈 여겨 볼 곳은 'fetch = FetchType.EAGER...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.