问题描述
我有这个实体:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "EMPLOYEE_ID")
private Long employeeId;
@Column(name = "FK_OTHER_ENTITY")
private Long otherEntityId;
.......
}
和实体2:
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class OtherEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "OTHER_ID")
private Long otherEntityId;
@Column(name = "DATE_FirsT")
private Date dateFirst;
@Column(name = "DATE_LAST")
private Date dateLast;
.......
}
select a.* from employee a,other entity b where a.FK_OTHER_ENTITY = b.OTHER_ID AND "DATE1 OF INPUT" >= b.DATE_FirsT and "DATE2 of INPUT" <= b.DATE_LAST
我如何访问具有简单外键而不是关系的其他实体的属性?
感谢您的回复
解决方法
您可以使用Hibernate 5.1中的临时连接:
How to join unrelated entities with JPA and Hibernate
Hibernate docs: Explicit joins
只需使用
inner join
或带有left join
子句的on
。
如果要使用SQL(而不是JPQL),则可以使用普通的SQL连接。