【发布时间】:2020-01-29 06:07:01
【问题描述】:
我有这张表,我想从中选择许多行并使用 JOIN 将两个表中的 id 转换为 name。我试过这个:
主表:
@Entity
@Table(name = "payment_transactions")
public class PaymentTransactions implements Serializable {
.....
@Column(length = 4)
private Integer merchant_id;
@Column(length = 4)
private Integer terminal_id;
......
}
带有附加数据的表格:
@Entity
@Table(name = "merchants")
public class Merchants implements Serializable {
@Column(name = "id")
private int id;
@Column(length = 255)
private String name;
.........
}
@Entity
@Table(name = "terminals")
public class Terminals implements Serializable {
@Column(name = "id")
private int id;
@Column(length = 255)
private String name;
.........
}
我试过了:
String hql = "select e.* from " + PaymentTransactions.class.getName() + " e "
+ " INNER JOIN " + Merchants.class.getName() + " m "
+ " ON e.id = m.merchant_id AND "
+ " INNER JOIN " + Terminals.class.getName() + " t "
+ " ON e.id = t.terminal_id "
+ " where e.created_at >= :start_date and e.created_at <= :end_date";
一般的想法是我想要一个主表Payment transactions,它将merchant_id 和terminal_id 存储为数字。通过加入,我想获得商家和终端的名称。实现这一点的正确方法是什么?
【问题讨论】: