SqlExceptionHelper - ERROR: column does not exist Позиция: 8
Столкнулся с ошибкой маппинга колонок таблицы с Entity, если поля в таблице Postgres написаны с большой буквы.
@Entity
@Table(name = "accdivtype", schema = "public")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Data
@EqualsAndHashCode
public class AccDivType {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "AccDivTypeID")
private long accDivTypeID;
ERROR: column accdivtype0_.acc_div_typeid does not exist
фото самой таблицы внутри схемы
есть ли решение как это исправить, без переименования колонок?
Ответы (1 шт):
Вам необходимо использовать двойные кавычки в именах полей, выдержка из справки: Идентификатор, заключённый в кавычки, становится зависимым от регистра, тогда как идентификаторы без кавычек всегда переводятся в нижний регистр. Например, идентификаторы FOO, foo и "foo" считаются одинаковыми в PostgreSQL, но "Foo" и "FOO" отличны друг от друга и от предыдущих трёх. (Приведение имён без кавычек к нижнему регистру, как это делает PostgreSQL, несовместимо со стандартом SQL, который говорит о том, что имена должны приводиться к верхнему регистру. То есть, согласно стандарту foo должно быть эквивалентно "FOO", а не "foo". Поэтому при создании переносимых приложений рекомендуется либо всегда заключать определённое имя в кавычки, либо не заключать никогда.)
