【发布时间】:2019-01-04 02:44:37
【问题描述】:
我写了一个简单的嵌套查询
@Autowired
@PersistenceContext
EntityManager entityManager;
@Autowired
Configuration configuration;
private JPASQLQuery<?> queryFactory;
@PostConstruct
public void init() {
queryFactory = new JPASQLQuery<>(entityManager, configuration);
}
public void student() {
QStudent student = new QStudent("student");
QStudent nested = new QStudent("nested");
List<?> fetch = queryFactory.select(student.id)
.from(SQLExpressions.select(nested.id)
.from(nested), student)
.fetch();
}
实体结构是这样的
@Entity
@Table(name = "u_student")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
生成的sql是这样的
选择 student.id 从 u_student(选择 nested.id 从 u_student 嵌套)作为学生
在sql外面加了一个tableName,导致sql语法错误
我错了吗?这样的嵌套查询应该怎么写?
第一次发问题不是很有用,谢谢。
【问题讨论】:
标签: sql syntax-error querydsl