У меня есть две сущности JPA, называемые MyTasks и TaskStatus.
MyTasks Entity:
@Entity
@Table(name = "MyTasks", uniqueConstraints = {
@UniqueConstraint(columnNames = {"id"})
public class MyTasks {
@Id
@Column(name = "id")
private Integer id;
@Column(name = "task_name")
private String task_name;
@Column(name = "task_data")
private String task_data;
}
TaskStatus Entity:
@Entity
@Table(name = "TaskStatus", uniqueConstraints = {
@UniqueConstraint(columnNames = {"id"})
public class TaskStatus {
@Id
@Column(name = "id")
private Integer id; //This is foreign key - MyTask(id)
@Column(name = "task_state")
@NotNull
private String task_state;
@Column(name = "last_attempted")
private String last_attempted;
Мне нужно получить все строки из MyTasks вместе со статусом, статус которого не существует в таблице TaskStatus или НЕ является «завершенным».
В основном мне нужны результаты следующего запроса через JPA, возможно, с использованием именованного запроса или чего-то подобного. Я хочу избежать использования подготовленных операторов, явно выполняемых с помощью entitymanager.
select id, task_data, state, last_attempted from MyTasks t left outer join TaskStatus ts on t.id = ts.id
where ts.state is NULL or ts.state <> 'resolved';
Как я могу получить это, используя именованный запрос JPA или что-то в этом роде? Я хочу, чтобы результаты автоматически сопоставлялись с классом сущностей. Так что я не хочу выполнять запрос вручную, используя менеджер сущностей и т. Д. c. Пожалуйста, предложите