2012-07-24 2 views
2

stackoverflow에서 열린 많은 항목을 확인했지만 내 질문에 대한 답변을 얻지 못했습니다. 좋아, 이제 ArrayList를를 사용하여이 예를 살펴 보자일대 다 최대 절전 모드 매핑에 대한 질문

public class Stock implements java.io.Serializable {  
    private Integer stockId; 
    private String stockCode; 
    private String stockName; 
    private ArrayList<StockDailyRecord> stockDailyRecords = new ArrayList<StockDailyRecord>(); 
    //getter, setter and constructor 
} 
public class StockDailyRecord implements java.io.Serializable { 
    private Integer recordId; 
    private Stock stock; 
    private Float priceOpen; 
    private Float priceClose; 
    private Float priceChange; 
    private Long volume; 
    private Date date; 

    //getter, setter and constructor 
} 

그래서 우리는 주식에서 협회는 일대 StockDailyRecord을 말할 수있다. 그리고 그것은 제가 매핑하려고하는 것입니다 Stock.hbm.xml. 나는 목록으로 태그로 매핑하는 동안 인덱스이 필요하다고 읽었습니다.

내 첫 번째 질문은 다음과 같습니다. 색인 목록을 비워 둘 수 있습니까?

<list name="stockDailyRecords" table="stock_daily_record" inverse="true" lazy="true" fetch="select"> 
    <key> 
     <column name="STOCK_ID" not-null="true" /> 
    </key> 
    <list-index></list-index> 
    <one-to-many class="com.mkyong.stock.StockDailyRecord" /> 
</list> 

내 두 번째 질문 : 그럼 지금은 (데이터베이스) 내 테이블 STOCKDAILYRECORDindexCol라는 컬럼을 추가하는 것이 가정하자. 잉태에서 우리는 StockDailyRecord의 목록이 0에서 x까지 순서대로 나열되어 있습니다. 즉, indexCol은 주식과 관련하여 고유하지만 은 STOCKDAILYRECORD에서 고유하지 않음을 나타냅니다. 내가 생각하는 것이 맞습니까? 가장 높은 답을 투표에, 우리가 컬렉션으로 객체를 선언하고 ArrayList를로 인스턴스화하고 XML에 가방를 사용할 수 있다고, Hibernate one to many mapping works with a list but not a set? :

내 세 번째 질문은 여기에 유래에서 발견 솔루션에 관한 것입니다 우리가 피하고 싶다면 매핑 파일 리스트. 그래서 은 Collection 대신 ArrayList를 선언 할 수 있습니까? 미리 감사드립니다.

답변

2

List를 사용할 때의 문제점은 무엇입니까? 당신은 arraylist로 관리 할 수 ​​있습니다. 예를 들면 다음과 같습니다.

<bag name="stockDailyRecords" table="stock_daily_record" inverse="true" lazy="true" fetch="select"> 
<key column="STOCK_ID"/> 
<many-to-many column="recordId" fetch="select" lazy="false" class="com.mkyong.stock.StockDailyRecord"/> 
</bag> 

ArrayList는 List 인터페이스를 구현합니다. 단,이 두 객체에는 동일한 메소드가 있습니다.

+0

우리는 모델 "ArrayList"또는 "List"에서 사용할 수 있으며 "bag"매핑에 아무런 문제없이 사용할 수 있다는 것을 의미합니까? –

+0

네,하지만 List를 ArrayList로 인스턴스화해야하는 이유를 설명 할 수 있습니까? – manix

+1

List는 추상 클래스이기 때문에 우리는 인스턴스를 생성 할 수 없기 때문에 객체를 다형성을 기대하는 일종의리스트로 선언 할 수 있습니다.하지만 다형성은 내 경우에는 필요하지 않으므로 선언하고 ArrayList로 인스턴스화 할 수 있습니다 –

관련 문제