2012-04-10 5 views
0

私はSpring MVCとHibernateテクノロジを学ぶ初心者です。 私はデータベースにアクセスするためにhibernateを使用しようとしています。私はbeanにデータベースを設定するためにannotationメソッドを使用しています。私は間違いを投げかけている1対多の関係を作ろうとしています。休止状態の設定中アノテーションを使用して1対多リレーションを生成するためにhibernateを使用

基本的に私はそれが午前関係

エラー「1つの用途は、複数のクイズを投稿することができます」です。
org.hibernate.AnnotationException:@OneToManyの使用または@ManyToManyがマップされていないクラスをターゲットに:[bean.Quiz] @OneToManyまたは@ManyToManyの使用がマップされていないクラスをターゲットbean.User.quizPosted:bean.User.quizPosted [bean.Quiz]

2つのBeanのための私のコードは以下のとおりです。

U ser.javaあなたがOnetoManyとManyToOneの関係で使用されているすべてのクラスは、アプリケーションで定義されなければならないことを意味し、あなたの定義された注釈付きクラスでunmapedのクラスを持っている

package bean; 

    import java.util.HashSet; 
    import java.util.Set; 

    import javax.persistence.Column; 
    import javax.persistence.Entity; 
    import javax.persistence.GeneratedValue; 
    import javax.persistence.GenerationType; 
    import javax.persistence.Id; 
    import javax.persistence.JoinColumn; 
    import javax.persistence.ManyToOne; 
    import javax.persistence.OneToMany; 
    import javax.persistence.Table; 
    import javax.persistence.UniqueConstraint; 

    @Entity 
    @Table(name="User", uniqueConstraints ={@UniqueConstraint(columnNames="userName"})}) 
    public class User { 
     @Id 
     @GeneratedValue(strategy = GenerationType.AUTO) 
     private Integer id; 

     @ManyToOne(targetEntity=Person.class) 
     @JoinColumn(name="PersonId") 
     private Person person; 

     @Column(name="userName") 
     private String userName; 

     @Column(name="password") 
     private String password; 

     @Column(name="role") 
     private String role; 

     @OneToMany(mappedBy = "postedBy") 
     private Set<Quiz> quizPosted = new HashSet<Quiz>(); 

     @OneToMany(mappedBy = "userId") 
     private Set<User_Quiz> user_Quizs = new HashSet<User_Quiz>(); 
    } 

とquiz.java

package bean; 

    import java.sql.Date; 
    import java.util.HashSet; 
    import java.util.Set; 

    import javax.persistence.Column; 
    import javax.persistence.Entity; 
    import javax.persistence.GeneratedValue; 
    import javax.persistence.GenerationType; 
    import javax.persistence.Id; 
    import javax.persistence.JoinColumn; 
    import javax.persistence.ManyToOne; 
    import javax.persistence.OneToMany; 
    import javax.persistence.Table; 
    import javax.persistence.UniqueConstraint; 


    @Entity 
    @Table(name = "Quiz") 
    public class Quiz { 

     @Id 
     @GeneratedValue(strategy = GenerationType.AUTO) 
     private Integer quizId; 

     @Column(name = "duration") 
     private Integer duration; 

     @Column(name = "date") 
     private Date date; 

     @ManyToOne(targetEntity = User.class) 
     @JoinColumn(name = "postedBy") 
     private User postedBy; 

     @OneToMany(mappedBy="quizId") 
     private Set<User_Quiz> user_Quizs = new HashSet<User_Quiz>();   

    } 

答えて

0

あなたが春を使用していると定義したコンテキスト。 URセッションファクトリでは、annotatedClassesプロパティにurクラスを追加します。

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="annotatedClasses"> 
    <list> 
     <value>test.package.Foo</value> 
     <value>test.package.Bar</value> 
    </list> 
    </property> 
</bean> 

Annotated Session Factory

+0

を参照してください本当に働いた..ありがとうございました...! – user1324493

関連する問題