2010-10-20 23 views
32
aşağıdaki hazırda İstisna alıyorum

başvuruyor:hazırda @ManyToOne bilinmeyen bir varlık

@OneToOne or @ManyToOne on Matchup.awayTeam references an unknown entity: Team

basitleştirilmiş Matchup sınıfı şuna benzer:

@Entity public class Matchup implements Serializable 
{ 
    protected Team awayTeam; 

    @ManyToOne 
    @JoinColumn(name="away_team_id") 
    public Team getAwayTeam() { 
     return awayTeam; 
    } 
} 

basitleştirilmiş Takım sınıfı şuna benzer:

@Entity 
public class Team implements Serializable { 
    protected List<Matchup> matchups; 

    @OneToMany(mappedBy="awayTeam", targetEntity = Matchup.class, 
    fetch=FetchType.EAGER, cascade=CascadeType.ALL) 
    public List<Matchup> getMatchups() { 
     return matchups; 
    } 
} 

Notlar:

  • Hem Matchup hem de Team'in alt sınıfları vardır. Bunun durumu etkileyip etkilemediğinden emin değilim.
  • Hem Matchup hem de Team benim persistence.xml içinde dahil olarak listelenir.
  • Her iki alıcı yönteminde de @Transient ek açıklamaları koyarsam, hatası kaybolur.

Bu istisnanın neden oluştuğunu kimse aydınlatabilir mi?

+0

Bir TEAM tablonuz var, evet? @oneToMany'i eklemeden önce işinize yarayacak bir şeyiniz var mı? –

cevap

50

Sorunu çözdüm: Hibernate AnnotationConfiguration nesnesine sınıf Ekibi eklemiyordum. Böylece, Hazırda Beklet, sınıfı tanıyamadı.

+0

Benim durumumda, bir sınıftaki @entity Notunu unuttum ve sizinle aynı hata mesajını aldım. Bu bilgiyi yalnızca benimle aynı (aptal) hatayı yaptıysam gönderirim. – flipperweid

+2

Sınıf Takımı Hibernate AnnotationConfiguration nesnesine nasıl ekleyebileceğinizi açıklayabilir misiniz? – Cristian

+0

Sanırım ne demek istediğini @ManyToOne (targetEntity = Team.class) hedefEntity eklemek –

4

Başka bir çözüm: Başvurulan sınıfın hibernate.cfg.xml dosyanızın içerdiğinden emin olun.

10

hibernate.cfg.xml dosyasındaki girişle birlikte, başvurulan sınıfta @Entity ek açıklamasını almanız gerekir. Dosya

<hibernate-configuration> 
    <session-factory name="java:/hibernate/SessionFactory"> 
        <mapping class="co.com.paq.ClassNAME" /> 
     </session-factory> 
</hibernate-configuration> 

:

0

deneyin aynen böyle, Nitelikli Adını (ClassName) eklemek için

META-INF/hibernate.cfg.xml 
1

Ben Bahar kullanarak bir projede çalışmak ve 4 Hazırda ve öğrendiğim yapmıyoruz, bir hibernate.cfg.xml dosyasına sahip. Bunun yerine, fasulye Listeye benim fasulye ekleme

<bean id="sessionFactory" 
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource"> 
     <ref bean="dataSource" /> 
    </property> 
    <property name="annotatedClasses"> 
     <list> 
      <value>com.package.Bean</value> 
     </list> 
    </property> 
</bean> 

gibi biraz sorun çözüldü görünüyor dosyasında applicationContext.xml listelenmiştir. Daha fazla bilgi here bulabilirsiniz.

0

Sınıfı, uygun sırayla hibernate.cfg'a ekleyin. İlk olarak başka bir sınıf tarafından yönlendirilecek olan dosyayı eşleştirin

İlgili konular