2010-11-21 8 views
3

Ben sırayla ListHolder nesneleri tutabilecek bir ListHolder Listesini tutan basit bir Java modeli vardır:Hazırda Bekletme durumu olan sıralı bir Liste için nasıl eşleme dosyası oluştururum?

bir hazırda eşleme dosyası için yaklaşımım şöyle
public class ListHolder { 
    private List<ListHolder> list; 
} 

:

<class name="ListHolder" table="tListHolder"> 
    <id column="id" type="int"> 
     <generator class="native"/> 
    </id> 
    <list name="list" access="field" cascade="all"> 
     <key column="parent" not-null="true"/> 
     <index column="elementIndex"/> 
     <one-to-many class="ListHolder" /> 
    </list> 
</class> 

kullandığım hazırda 3.0 ile yukarıdaki, aşağıdaki istisna olsun:

Exception in thread "main" org.hibernate.HibernateException: 
Unable to instantiate default tuplizer 
[org.hibernate.tuple.entity.PojoEntityTuplizer] 
at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(
    EntityTuplizerFactory.java:110) 

ben eşleme dosyasında yanlış bir şey yapıyorum? Çalışılan listeleri eşlemek için daha iyi bir yolu var mı?

Yukarıdakileri daha yeni (3.6) Hazırda Bekletme sürümü ile denemek mantıklı mı?

cevap

1

3.6'ya yükseltmek, hiçbir değişikliği değiştirmedi. CLASSPATH'a javassist eklenmesi daha yararlı hata mesajları getirdi. Belirleyici olmayan başka bir üyenin yığın izinin suçlusu olduğu ve List'in ilişkisinin aslında çoktan çoğa olduğu ortaya çıktı. Aşağıdaki eşleme şu anda hatasız çalışır:

<class name="ListHolder" table="tListHolder"> 
    <id name="id" column="fid" type="long" /> 
    <property name="name" column="fname" type="string" length="100" /> 
    <list name="list" access="field" cascade="all"> 
     <key column="parentId" /> 
     <index column="elementIndex"/> 
     <many-to-many class="ListHolder"/> 
    </list> 
</class> 
1

3.6'nın sonucu değiştireceğini düşünmüyorum.
CP'nizde javassist.jar var mı? bazen yardımcı olur.

İlgili konular