我有一个实体
public class Arena {
@Id
private final Long id;
@Embedded(onEmpty = Embedded.OnEmpty.USE_NULL)
final Point location;
}
点来自org.springframework.data.geo包
和它的 Postgres 模式
CREATE TABLE arena
(
id SERIAL NOT NULL
CONSTRAINT arena_pk
PRIMARY KEY,
location POINT
);
当我尝试通过 spring data jdbc 存储库(arenaRepository.findAll())使用实体时
public interface ArenaRepository extends CrudRepository<Arena, Long> {
}
我收到一个错误
请求处理失败;嵌套异常是 org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; 错误的 SQL 语法 [SELECT arena.id AS id, arena.y AS y, arena.x AS x FROM arena]; 嵌套异常是 org.postgresql.util.PSQLException:错误:列 arena.y 不存在
我看到 SQL 与架构不匹配。但是是否可以通过 Spring Data Jdbc 使用“geo”类?
我尝试将位置介绍为列表并且它有效。这是正确的方法吗?