У меня есть три объекта. Пользователь (родительский)Запрос наследования наследования объекта Querydsl с соединением
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(name = "user_type")
@Table(name = "userinfo")
@SequenceGenerator(name = "userInfoUserIdSeq", initialValue = 1, allocationSize = 100, sequenceName = "userinfo_user_id_seq")
public abstract class UserInfo {
public static final String EDITOR = "E";
public static final String TALENT = "T";
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "userInfoUserIdSeq")
@Column(name = "user_id")
private Long id;
...
Editor (ребенок)
@Entity
@DiscriminatorValue(UserInfo.EDITOR)
@Table(name = "editors")
public class Editor extends UserInfo { ....
Журналист (ребенок)
@Entity
@DiscriminatorValue(UserInfo.TALENT)
@Table(name = "talent")
public class Talent extends UserInfo { .....
У меня есть следующий запрос, который не работает, написано на querydsl
QUserInfo userInfo = QUserInfo.userInfo;
text = "%" + text + "%";
QTalent talent = QTalent.talent;
QEditor editor = QEditor.editor;
SearchResults<UserInfo> results = query.from(userInfo).leftJoin(userInfo, talent._super)
.leftJoin(userInfo, editor._super).where(.....
У меня есть следующая команда stacktr Туз:
at com.mysema.query.jpa.impl.AbstractJPAQuery.createQuery(AbstractJPAQuery.java:127)
at com.mysema.query.jpa.impl.AbstractJPAQuery.listResults(AbstractJPAQuery.java:261)
at com.washpost.talent.dao.implementation.UserInfoDaoImpl.findAllUsersByNamesAndEmails(UserInfoDaoImpl.java:33)
... 113 more
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join! [select count(userInfo)
from com.washpost.talent.model.UserInfo userInfo
left join treat(userInfo as Talent) as talent
left join treat(userInfo as Editor) as editor
where ....
Я не могу понять, почему мой присоединяется не работает
Поскольку запрос является проблемой, было бы неплохо, если бы вы включили его целиком – Zielu
Какую информацию вы пытаетесь извлечь? –