【发布时间】:2021-06-29 03:03:29
【问题描述】:
在休眠中我想运行这个 JPQL / HQL 查询:
select new AppointmentDTO(a.id,a.payment)
From Appointment a
WHERE a.hospitalId = :hospitalId
约会DTO类
@Entity
public class AppointmentDTO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer appointmentId;
@OneToMany
@JoinColumn(name = "paymentId")
private List<Payment> payment;
public Integer getAppointmentId() {
return appointmentId;
}
public List<Payment> getPayment() {
return payment;
}
public AppointmentDTO(Integer appointmentId, List<Payment> payment) {
super();
this.appointmentId = appointmentId;
this.payment = payment;
}
}
预约类
@Entity
@Table(name = "<tablename>")
public class Appointment {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY
private Integer id;
@OneToMany
@JoinColumn(name = "paymentId")
private List<Payment> payment;
//getter and setter
当我执行时,我得到这个错误:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [com.followMyDoctor.DTO.AppointmentDTO]. Expected arguments are: int, java.util.Collection [select new AppointmentDTO(a.id,a.payment) From ........ = :hospitalId]
select语句中的错误是什么,是否有可能得到预期的结果? DTO方法可以实现onetomany吗
【问题讨论】:
-
请详细说明问题说明。
-
@krishnkantjaiswal 我需要使用 DTO 执行此查询 select new AppointmentDTO(a.id,a.payment) From Appointment a WHERE a.hospitalId = :hospitalId
-
@NikolaiShevchenko 我已经添加了整数约会ID,列出
付款
标签: java spring-boot hibernate jpa hql