鉴于此表:
CREATE TABLE todouser
(
id SERIAL,
email varchar(80) UNIQUE NOT NULL,
password varchar(80),
registered boolean DEFAULT FALSE,
confirmationUri varchar(280),
CONSTRAINT todouser_pkey PRIMARY KEY (id)
);
和类:
class TodoUser {
Long id;
String email;
String password;
String confirmationUri;
boolean registered;
}
我正在尝试执行以下操作:
TodoUser user = sql.firstRow("""SELECT * FROM todouser WHERE email = $email""")
即我希望 Groovy 将 GroovyRowResult 强制转换为我的基本 POGO,而不是像在这个答案中那样自己构建它。
我认为这是合理的,因为 GroovyRowResult 实现了 Map 并且它只是 POGO 实例变量名称映射的 Map 键...... Groovy 有某种支持。
问题是,在 PostgreSQL 表中,“confirmationUri”实际上显示为“confirmationuri”......所以映射失败,因为“U”在我的 POGO 中是大写的。
我已经尝试在表格和 POGO 中将 'confirmationUri' 更改为 'confirmation' 并且它可以工作......但只是为了记录,你将如何在 Groovy 中解决这个问题?
我似乎记得有一些方法可以在 Groovy 类中重写,这有助于解决“set/get”调用。但这是正确的方法吗?当调用“get/set”方法时,是否有一些注释可以用来将“confirmationUri”标记为“confirmationuri”?或者也许在 Groovy 中还有其他方法可以做到这一点?