我正在尝试将一些数据库列(驼峰式大小写)映射到春季的模型,但由于某种原因,这不适用于驼峰式大小写的列。
这是我的模型:
@Entity
@Table(name="tournment_tournment")
public class GameData {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "Id")
private Integer id;
@Column(name = "partidaId")
private String partidaId;
@Column(name = "izena")
private String izena;
@Column(name = "IdEnpresa")
private Integer idEnpresa;
@Column(name = "jaiotzeData")
private Date jaiotzeData;
@Column(name = "puntuazioa")
private Integer puntuazioa;
@Column(name = "lanpostua")
private String lanpostua;
@Column(name = "jokoa")
private Integer jokoa;
@Column(name = "partidaData")
private Date partidaData;
@Column(name = "create_date")
private LocalDateTime create_date;
@Column(name = "write_date")
private LocalDateTime write_date;
@Column(name = "create_uid")
private Integer create_uid;
@Column(name = "write_uid")
private Integer write_uid;
/* Constructor getters and setter*/
我从 api 获得的 Json 响应如下所示:
{
"id": 7,
"partidaId": null,
"izena": "UnaI",
"idEnpresa": null,
"jaiotzeData": null,
"puntuazioa": 120,
"lanpostua": "dEV",
"jokoa": 1,
"partidaData": null,
"create_date": "2024-01-30T11:42:58.029886",
"write_date": "2024-01-30T11:42:58.029886",
"create_uid": 2,
"write_uid": 2
},
如您所见,所有非驼峰式命名的列都存在,而驼峰式命名的列为空。我怎样才能解决这个问题?我正在使用 Odoo 17 的 postgresql 数据库。
如PostgreSQL 列名称区分大小写吗? postgres 需要 " 来访问包含大写字符的列。
最简单的解决方案是将数据库列重命名为蛇形命名(SQL 默认命名约定)。
partidaId --> partida_id
默认情况下,Spring Boot 会将 Snake_case SQL 列映射到 camleCase Java 变量
您应该通过自己查询 postgreSQL 来看到此行为
alter table some_table add column "testAbcZzz" varchar;
alter table some_table add column testAbcZzz varchar;
这两者都有不同的结果。如果没有
"
posgresql 将执行所有小写
select testAbcZzz , * from some_table;
select testabczzz , * from some_table;