1

I have simple entity like :

    @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;
    }

And entity 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;
    }

Can i create @JoinFormula or something like that to create query , which will take students from Student entity to University entity ?

I tried something like that:

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

but it doesn't work. Can i create query to select some students ?

UPDATED : @JoinFormula never called.

4

2 回答 2

0

我可能错过了重点,但如果您只想引用另一个实体,您可以使用 @ManyToOne 注释。

例子:

@ManyToOne
public MediaLibrary getParentLibrary() {
    return parentLibrary;
}

同样,如果您有一个列表,您可以使用 @ManyToMany 注释,然后指定正确的连接表:

例子:

@ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.MERGE, CascadeType.REFRESH, })
@JoinTable(name = "MediaDataTag", joinColumns = { @JoinColumn(name = "MediaData_Id") }, inverseJoinColumns = { @JoinColumn(name = "Tag_Id") })
public Set<Tag> getTags() {
    return this.tags;
}

如果你提供一个清晰的用例,提供一个具体的解决方案会更容易。

于 2013-04-25T12:15:40.260 回答
0

EclipseLink有一组很棒的 JPA 文档和示例(即使您使用的是不同的实现)

尝试改用这个(我假设一所大学可以有多个学生)

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

在学生中,您将拥有反向映射

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