连接表中的JPQL查询

时间:2018-03-26 18:09:52

标签: java-ee jpql

我的问题很简单,虽然我找到了多个解决方案,但我没有成功正确实现它们,所以我要求你的帮助。

在名为Prof的实体类中,我有:

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer idUser;
    @OneToMany (cascade = PERSIST)
    @JoinTable(name="jnt_Prof_Exam",
                joinColumns = @JoinColumn(name="idUser"), 
                inverseJoinColumns = @JoinColumn(name="idExam"))
        private List<Exam> exams;

现在我想知道如何获得给定idUser的Exam列表

2 个答案:

答案 0 :(得分:2)

您可以使用此JPQL,

SELECT p.exams FROM Prof p WHERE p.idUser = :id

电话会是这样的:

List<Exam> exams = em.createQuery("...JPQL...")
     .setParameter("id", idUser)
     .getSingleResult();

使用此JPQL将获取exams的列表而不是类Prof中的所有对象。

更好的是,您可以将该JPQL与NamedQuery一起使用,但有了这个,您可以快速测试。 :)

答案 1 :(得分:0)

你也可以像这样使用 em.find()

for col in worksheet.columns:
     worksheet.column_dimensions[col[0].column].width = 20.0