Hibernate 의 한 쌍 이상 의 관계 조회
18848 단어 hibernate
한 쌍 이 많 든 많 든 한 쌍 이 많 든 다른 실체 류 에서 하나의 실체 류 대상 속성 을 설명 하여 데 이 터 를 밀봉 한다.
조회 한 여러 표 의 데 이 터 를 이 실체 류 의 대상 에 밀봉 하고 설정 을 통 해 이 루어 집 니 다.
배치 절차
Customer 의 실체 클래스 에 하나의 속성 을 추가 합 니 다.
// ,
private Set linkmans =new HashSet<>();
public Set getLinkmans() {
return linkmans;
}
public void setLinkmans(Set linkmans) {
this.linkmans = linkmans;
}
조회 한 여러 표 의 데 이 터 를 이 실체 류 의 대상 에 밀봉 하고 설정 을 통 해 이 루어 집 니 다.
Customer 의 맵 파일 에 관 계 를 설정 하면 우리 가 수 동 으로 데 이 터 를 밀봉 하지 않 아 도 됩 니 다.
메모: 1. set 라벨 을 설정 하 는 이 유 를 알 아야 합 니 다. 고객 실체 류 는 set 집합 을 사용 하기 때 문 입 니 다!1. 외부 키 를 설정 해 야 하 는 이 유 를 알 아야 합 니 다. 모든 데이터베이스 관 계 는 외부 키 를 통 해 이 루어 지기 때 문 입 니 다.
<set name="linkmans">
<key column="lkm_cust_id">key>
<one-to-many class="com.entity.Linkman" />
set>
그리고 hbm 에 linkman 의 mapping 맵 파일 을 씁 니 다.
메모: Hibernate. cfg. xml 에 불 러 오 는 것 을 잊 지 마 세 요.
테스트 코드:
// : ID , !
@Test
public void get(){
//1.
Session session = HibernateUtils.getSession();
//2. OID
Customer customer = session.get(Customer.class, 2L);
System.out.println(" :"+customer.getCustName());
Set linkmans = customer.getLinkmans();
for(Linkman linkman:linkmans){
System.out.println(" "+linkman.getLkmName());
}
//6.
session.close();
}
코드
두 개의 지구 화 류
Customer
public class Customer {
private Long custId;//bigint(32) NOT NULL AUTO_INCREMENT COMMENT ' ( )',
private String custName;//varchar(32) NOT NULL COMMENT ' ( )',
private String custSource;//varchar(32) DEFAULT NULL COMMENT ' ',
private String custIndustry;//varchar(32) DEFAULT NULL COMMENT ' ',
private String custLevel;//varchar(32) DEFAULT NULL COMMENT ' ',
private Set linkmans = new HashSet();//
public Set getLinkmans() {
return linkmans;
}
public void setLinkmans(Set linkmans) {
this.linkmans = linkmans;
}
get()/set()......
}
Linkman
public class Linkman {
private Long lkmId;//
private String lkmName;
private Long lkmCustId;//
private String lkmGender;
private String lkmPhone;
private String lkmMobile;
private String lkmEmail;
private String lkmQq;
private String lkmPosition;
private String lkmMemo;
get()/set()......
}
설 정 된 맵 파일
Customer.hbm.xml
<hibernate-mapping>
<class name="com.entity.Customer" table="cst_customer">
<id name="custId" column="cust_id">
<generator class="native">generator>
id>
<property name="custName" column="cust_name">property>
<property name="custSource" column="cust_source">property>
<property name="custIndustry" column="cust_industry">property>
<property name="custLevel" column="cust_level">property>
<set name="linkmans">
<key column="lkm_cust_id">key>
<one-to-many class="com.entity.Linkman" />
set>
class>
hibernate-mapping>
Linkman.hbm.xml
<hibernate-mapping>
<class name="com.entity.Linkman" table="cst_linkman">
<id name="lkmId" column="lkm_id">
<generator class="identity">generator>
id>
<property name="lkmName" column="lkm_name">property>
<property name="lkmCustId" column="lkm_cust_id">property>
<property name="lkmGender" column="lkm_gender">property>
<property name="lkmPhone" column="lkm_phone">property>
<property name="lkmMobile" column="lkm_mobile">property>
<property name="lkmEmail" column="lkm_email">property>
<property name="lkmQq" column="lkm_qq">property>
<property name="lkmPosition" column="lkm_position">property>
<property name="lkmMemo" column="lkm_memo">property>
class>
hibernate-mapping>
총 프로필 hibenate. cfg. xml
hbm. xml 두 개 를 불 러 옵 니 다.
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driverproperty>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate01property>
<property name="hibernate.connection.username">rootproperty>
<property name="hibernate.connection.password">rootproperty>
<property name="hibernate.show_sql">trueproperty>
<property name="hibernate.format_sql">trueproperty>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialectproperty>
<mapping resource="com/entity/hmb/Customer.hbm.xml"/>
<mapping resource="com/entity/hmb/Linkman.hbm.xml"/>
session-factory>
hibernate-configuration>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA 및 PostgreSQL 텍스트다음은 의 친구들과 논의한 후 오랫동안 초안으로 작성한 블로그 게시물이며 ( ) 주제에 대한 훌륭한 기사를 작성했기 때문에 여기에 작은 테스트를 게시하고 있습니다. JPA 주석 없이 String를 선언합니다. 재현하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.