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();
到目前为止,您尝试了什么?请更新您的问题。到目前为止您尝试了什么?请更新您的问题。