0

私は、Spring MVC および Hibernate テクノロジを学習する初心者です。休止状態を使用してデータベースにアクセスしようとしていますが、注釈メソッドを使用して Bean をデータベースに構成しています。エラーをスローしている1対多の関係を作ろうとしています。

基本的には「1回の利用で複数のクイズを投稿できる」関係です

hibernate の構成中のエラー
: .quizPosted[bean.Quiz]

2 つの Bean の私のコードは次のとおりです。

ユーザー.java

    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>();        

    }
4

1 に答える 1

0

Defined アノテーション付きクラスにマップされていないクラスがあります。つまり、OnetoMany および ManyToOne 関係で使用したすべてのクラスは、Spring を使用していると定義したように、Application Context で定義する必要があります。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>

注釈付きセッション ファクトリを参照してください

于 2012-04-10T17:51:41.177 に答える