양 방향 다 중 관련 사용 List 에 문제 가 발생 했 습 니 다.

2253 단어 xml
첨부 그림: 계 정 (Account) 과 주문 (Order) 간 에 쌍방 향 다 중 관 계 를 맺 습 니 다.예전 에는 모든 Order 를 Set 으로 Account 에 저장 했다.오늘 List 로 바 꾼 후에 문제 가 발생 했 습 니 다. Account 인 스 턴 스 를 받 은 후에 getOrders () 를 호출 하여 모든 주문 서 를 받 은 다음 에 주문 인 스 턴 스 의 속성 타 임 스 빈 포인터 문제 (예전 에 Set 를 사용 할 때 문제 가 없 었 습 니 다) 를 방문 하 십시오. 큰 도움 을 주 십시오.
Account.hbm.xml

 <class name="org.qiujy.domain.Account" table="account">
    <id name="id" column="id" type="java.lang.Long">
        <generator class="native"/></id>
    <property name="userName" column="userName" type="string"/>
    <list name="orders" table="orders" cascade="save-update" inverse="true">
        <key column="accountId" not-null="true"/>
        <list-index column="orderNumber" />
        <one-to-many class="org.qiujy.domain.Order"/>
    </list>
 </class>

Order.hbm.xml

 <class name="org.qiujy.domain.Order" table="orders">
    <id name="id" column="id" type="long">
        <generator class="native"/></id>
    <property name="orderNumber" column="orderNumber" type="string"/>
    <property name="createTime" column="createTime" type="timestamp"/>
    <many-to-one name="account" 
    	column="accountId"
     	class="org.qiujy.domain.Account" 
        	not-null="true"/>
 </class>

테스트 (데이터베이스 에 테스트 데이터 가 있 습 니 다)

Account account = (Account) session.load(Account.class, new Long(1));
System.out.println("============"+account.getUserName());

List list = account.getOrders();
int size = list == null ? 0 : list.size();
for(int i = 0; i < size; i++){
	Order ord = (Order)list.get(i);
	//      
	System.out.println( "No " + ord.getOrderNumber());
}

좋은 웹페이지 즐겨찾기