Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取属于一项调查的所有问题?_Java_Hibernate_Jpa_Hql - Fatal编程技术网

Java 如何获取属于一项调查的所有问题?

Java 如何获取属于一项调查的所有问题?,java,hibernate,jpa,hql,Java,Hibernate,Jpa,Hql,首先,我不是太有经验的所有数据库的东西,所以请怜悯我。 我有两个实体类。调查和问题 @Entity @Table public class Survey { @Id @Column(name="ID") @GeneratedValue(strategy=GenerationType.AUTO) private int id; private String surveyName; private int questionCount;

首先,我不是太有经验的所有数据库的东西,所以请怜悯我。 我有两个实体类。调查和问题

@Entity
@Table
public class Survey {

    @Id
    @Column(name="ID")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private int id;

    private String surveyName;

    private int questionCount;

    private String owner;

    private int participant;

    @OneToMany(mappedBy= "survey", cascade=CascadeType.ALL)
    private List<Question> question = new ArrayList<Question>(); 

我很难编写正确的查询,以获取HQL调查中的所有问题。也许有人能给我一个正确的方向的提示,或者给我一个如何做的例子。

有两种方法可以获得
调查的所有
问题:

1.遍历托管关联 你塑造了一个新的世界。因此,如果已经加载了
Survey
实体,则可以对该实体调用
getSurvey()
方法。然后Hibernate将生成并执行查询以获取测量实体。
有几种方法可以解决这个问题。但这是一个更高级的话题

2.实现查询 如果您不需要
调查
实体,最好使用只加载
调查
实体的JPQL查询。JPQL的语法非常类似于SQL,我在我的文章中详细解释了它。
以下是返回与
查询关联的所有
调查
实体的查询

TypedQuery<Question> q = em.createQuery("SELECT q FROM Survey s JOIN s.question q WHERE s.id = :id", Question.class);
q.setParameter("id", id);
q.getResultList();
TypedQuery q=em.createQuery(“从调查中选择q加入s.question q,其中s.id=:id”,question.class);
q、 设置参数(“id”,id);
q、 getResultList();

有两种方法可以获取
调查的所有
问题:

1.遍历托管关联 你塑造了一个新的世界。因此,如果已经加载了
Survey
实体,则可以对该实体调用
getSurvey()
方法。然后Hibernate将生成并执行查询以获取测量实体。
有几种方法可以解决这个问题。但这是一个更高级的话题

2.实现查询 如果您不需要
调查
实体,最好使用只加载
调查
实体的JPQL查询。JPQL的语法非常类似于SQL,我在我的文章中详细解释了它。
以下是返回与
查询关联的所有
调查
实体的查询

TypedQuery<Question> q = em.createQuery("SELECT q FROM Survey s JOIN s.question q WHERE s.id = :id", Question.class);
q.setParameter("id", id);
q.getResultList();
TypedQuery q=em.createQuery(“从调查中选择q加入s.question q,其中s.id=:id”,question.class);
q、 设置参数(“id”,id);
q、 getResultList();

到目前为止,您尝试了什么?请更新您的问题。到目前为止您尝试了什么?请更新您的问题。