Вопрос, который я задаю, довольно прост, но, по-видимому, невозможно найти ответ. Я использую Spring Data JPA, и у меня есть JDBC / JPA DataSource
(который является PostgreSQL, но это не должно иметь значения), который предварительно загружен данными, и я просто пытаюсь читать из него.
Как мне построить мой POJO, чтобы у меня могло быть поле List<String>
, которое не требует дополнительной таблицы соединений? Вот пример класса сущности, который у меня есть:
@Entity
@Table(name = "pojo", schema = "pojoschema")
public class POJO {
@Id
@Column(name = "id", columnDefinition = "uuid")
private String id;
@Column(name = "a_string", columnDefinition = "text")
private String aString;
@Column(name = "strings", columnDefinition = "text[]")
@ElementCollection
private List<String> strings;
// getters/setters
}
При этом я получаю org.postgresql.util.PSQLException: ERROR: relation "pojo_strings" does not exist
.
Почему hibernate считает, что нужные мне String
находятся в другой таблице? Как мне исправить это поведение? Я просто пытаюсь отобразить столбец PostgreSQL text[]
обратно в List<String>
в POJO через JPA.