У меня есть следующий метод репозитория DATA Spring JPA с использованием нативного запроса с подселенным столбцом, который физически не существует в таблице баз данных: < /p>
@Repository
public interface GetDatesByIdRepository extends JpaRepository {
@Query(
value = """
select
sch.id,
sch.status,
sch.patientid,
sch.appointmentdate,
sch.starttime,
sch.duration,
sch.departmentid,
sch.templatedId,
block.id as replacementblockId
from
Dates sch
left join Dates block on sch.id = block.templateappointmentid and sch.id != block.id
where
sch.id = :dateId
""",
nativeQuery = true)
GetDatesJpaEntity findDatesByIdWithReplacement(Long dateId);
}
< /code>
и объект: < /p>
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class GetDatesJpaEntity {
@Id
@Column(name = "ID")
public long id;
@Column(name = "TEMPLATEDID")
public Long templatedId;
@Column(name = "PATIENTLOCATIONID")
public Long patientLocationId;
@Column(name = "PATIENTID")
public Long patientId;
@Column(name = "STATUS")
public String status;
@Column(name = "APPOINTMENTDATE")
public LocalDateTime appointmentDate;
@Column(name = "STARTTIME")
public LocalDateTime startTime;
@Column(name = "DURATION")
public Long duration;
@Column(name = "DEPARTMENTID")
public Long departmentId;
}
< /code>
Проблема состоит в том, что замена псевдонимы в столбце не существует в таблице и не отображается в сущности. Я изначально пытался добавить это поле в сущность как: < /p>
@Column(name = "REPLACEMENTBLOCKID")
private long replacementBlockId;
< /code>
Но это вызывает ошибки, потому что столбец не существует физически. Я хочу избежать крупного рефакторирования, такого как введение DTO, если это возможно.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ity-when-t