Я пытаюсь написать Hibernate Criteria API, эквивалентный следующему SQL запросу:
select c.NAME as carName,
cc.COLOR_CODE as colorCode,
cc.COLOR as color,
c.DESCRIPTION as desc,
c.MANUFACTURE_YEAR as year
from CAR c
LEFT JOIN CAR_COLOR CC on c.COLOR_CODE_ID = CC.ID
WHERE CC.COLOR_CODE = ?
Это моя Car
сущность
public class Car extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@Basic
@Column(name = "MANUFACTURE_YEAR")
private String year;
@Basic
@Column(name = "DESCRIPTION")
private String desc;
private Long colorCodeId;
private String manufacturer;
}
, и это моя CarColor
сущность
public class CarColor extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String color;
private String colorCode;
}
Car.colorCodeId
- это внешний ключ, который ссылается на CarColor.id
. Хотя нет очевидных отношений на уровне сущности, и я не могу добавить никаких связей.
Я хочу сделать левое соединение между этими двумя таблицами / сущностями и отобразить результат в CarSearch
? Как бы я это сделал? Очень признателен.
public class CarSearch {
private String carName;
private String colorCode;
private String color;
private String desc;
private String year;
}