2016-09-07 2 views
2

hier Code ist@OneToOne oder @ManyToOne auf com.hibernate.domain.Bee.honey verweist auf ein unbekanntes Wesen

@SequenceGenerator(name = "honey_seq", sequenceName = "honey_id_seq") 
public class Honey implements Serializable { 

    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "honey_seq") 
    private Integer id; 
    private String name; 
    private String taste; 
    @OneToMany(mappedBy = "honey") 
    private Set<Bee> bees = new HashSet<>(); 



@Entity 
public class Bee implements Serializable { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "bee_gen") 
    @SequenceGenerator(name = "bee_gen", sequenceName = "bee_id_seq") 
    private Integer id; 
    private String name; 

    @ManyToOne 
    @JoinColumn 
    private Honey honey; 

    public Bee() { 
    } 

Konfiguration

<hibernate-configuration> 
    <session-factory> 
     <property name="connection.url">jdbc:mysql://localhost:3306/sweet</property> 
     <property name="connection.username">root</property> 
     <property name="connection.password">root</property> 
     <property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
     <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 
     <property name="current_session_context_class">thread</property> 
     <property name="hibernate.show_sql">true</property> 
     <property name="hibernate.hbm2ddl.auto">create</property> 


     <!-- Mappings --> 

     <mapping class="com.hibernate.domain.Honey" /> 
     <mapping class="com.hibernate.domain.Bee" /> 
    </session-factory> 

Client.java

public static Honey createHoney() { 
     Honey forestHoney = new Honey(); 
     forestHoney.setName("forest Honey"); 
     forestHoney.setTaste("very sweet"); 
     Session sessoin = (Session) InitSessionFactory.getSessionFactoryInstance(); 
     Transaction transaction = sessoin.beginTransaction(); 
     sessoin.save(forestHoney); 
     transaction.commit(); 
     sessoin.close(); 
     return forestHoney; 
    } 

Stacktrace

Exception in thread "main" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on com.hibernate.domain.Bee.honey references an unknown entity: com.hibernate.domain.Honey 
    at org.hibernate.cfg.ToOneFkSecondPass.doSecondPass(ToOneFkSecondPass.java:97) 

nicht sicher, warum ich diese Störung erhalte, ich bin neu in den Ruhezustand und das ist mein erstes Programm Hibernate.

Nach dem Durchsuchen verschiedener Formulare kann ich diesen Fehler nicht beheben.

Ich bin nicht sicher, was schief gelaufen ist und wie man es beheben, Das einzige, was ich bezweifle, dass ich eine Konfiguration bin fehlt und jeder Hinweis ist willkommen

Dank

Antwort

0

schreiben @Entity Annotation Ihre Honey Klasse, so dass Hibernate es als eine Entität erkennt.

+0

Das löste den Fehler, aber führte zu einem anderen Fehler, stört es nicht, wenn ich> –

+0

frage Wahrscheinlich ist es besser, eine neue Frage zu stellen ... –

+0

eigentlich seine 'java.lang.ClassCastException: org.hibernate.internal. SessionFactoryImpl kann nicht in org.hibernate.Session' –

Verwandte Themen