Привет всем, у меня есть объекты:
Ребенок: @EDIT благодаря @ MithatKonuk
@Entity
@Table(name="child")
public class Child {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private int id;
@Column(name="FirstName")
private String firstName;
@Column(name="SecondName")
private String secondName;
@Column(name="PESEL")
private String PESEL;
@Column(name="Sex")
private String sex;
@JsonBackReference
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="familyid",referencedColumnName = "id")
private Family family;
И Семья: @EDIT благодаря @ MithatKonuk
@Entity
@Table(name="family")
public class Family {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private int id;
@OneToOne(cascade = CascadeType.ALL)
private Father father;
@JsonManagedReference
@OneToMany(mappedBy = "family",fetch=FetchType.EAGER,cascade = CascadeType.ALL)
private List<Child> childList;
И я хочу получить список детей, которые будут частью семьи.Я попытался сделать запрос: @EDIT благодаря @ MithatKonuk
@Transactional
public List<Child> findAllChild(int id) {
// TODO Auto-generated method stub
HibernateUtil.initManager();
HibernateUtil.getEntityManager().clear();
Query query = HibernateUtil.getEntityManager().createQuery("SELECT child FROM Child child FETCH JOIN child.family u WHERE u.id = :userId ");
query.setParameter("userId",id);
List<Child> result = query.getResultList();
HibernateUtil.shutdown();
return result;
}
И когда я пытаюсь запустить его, я всегда получаю сообщение об ошибке:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting "all", found 'JOIN' near line 1, column 64 [SELECT child FROM com.example.Family3.domain.Child child FETCH JOIN child.family u WHERE u.id = :userId ]
at org.hibernate.hql.internal.ast.QuerySyntaxException.convert(QuerySyntaxException.java:74) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.hql.internal.ast.ErrorTracker.throwQueryException(ErrorTracker.java:93) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:296) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:188) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:143) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:119) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:153) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:595) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:704) ~[hibernate-core-5.3.5.Final.jar:5.3.5.Final]
... 9 common frames omitted
Мне нужна ваша помощь.
@ Edit Хорошо, поэтому я обновил этот код до полных сущностей.Тебе нужно еще?Мне очень жаль, может быть, это легко, но я изучаю спящий режим, и я не знаю, что не так в этом.Спасибо за ответ.