1

次のような単純なエンティティがあります。

    @Entity
    public class University implements Serializable {

        /** The Constant serialVersionUID. */
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;

        @Column
        String name;

        @Column 
        String address;

        @Column 
        Student student;
    }

そしてエンティティ Student :

    @Entity
    public class Student implements Serializable {

        /** The Constant serialVersionUID. */
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;

        @Column
        String Firstname;

        @Column 
        String LastName;

        @Column 
        StudentStatus status;
    }

@JoinFormulaなどを作成して、 Student エンティティから University エンティティに学生を移動させるクエリを作成できますか?

私はそのようなことを試しました:

    @JoinFormula("SELECT l FROM Student l where l.id = 1")
    Student student;

しかし、うまくいきません。 一部の学生を選択するクエリを作成できますか?

更新: @JoinFormula は呼び出されませんでした。

4

2 に答える 2

0

EclipseLinkには、JPA のドキュメントとサンプルの優れたセットがあります (別の実装を使用している場合でも)。

代わりにこれを使用してみてください(大学には複数の学生がいる可能性があると思います)

@OneToMany(mappedBy="university")
private Set<Student> student;

そして Student では、逆のマッピングがあります

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="UniversityID")
private University university;
于 2013-04-25T20:22:59.383 に答える