
[英]How do I use Jooq insert ... returning in MySQL without code generation?
[英]How to drop a mysql column without redeploying with JOOQ
我想从数据库中删除一列而不同时重新部署应用程序。
我正在为表使用 JOOQ 生成的文件,并且我已经从代码中删除了该字段的所有用法,因此没有“获取”或“设置”该字段,但是当获取记录时,该字段仍在查询中。 因此,如果我删除该列,代码将中断。
我正在考虑编辑 JOOQ 生成的文件,但不确定这是否会起作用,因为这些字段似乎在那里编号(可能基于它们在表中的索引)。
/**
* Setter for <code>database.person.email</code>.
*/
public void setEmail(String value) {
set(7, value);
}
/**
* Getter for <code>database.person.email</code>.
*/
public String getEmail() {
return (String) get(7);
}
您似乎正在使用selectFrom(Table)
。 如果 jOOQ 知道列列表,它将始终从SELECT
子句中的Table.fields()
生成显式列列表。 这应该有更好的文档记录。
这种行为的后果(与生成SELECT *
)是:
但是,理想情况下,您应该始终在投影中使用明确的列列表,而不是投影所有列,除非您仍然需要其中的大部分。 这不仅可以防止这种问题在大多数情况下发生,而且还会以各种方式提高性能。
我正在考虑编辑 JOOQ 生成的文件,但不确定这是否会起作用,因为这些字段似乎在那里编号(可能基于它们在表中的索引)。
如果编辑这些文件是一种选择,那么重新生成和重新部署也可能是一种选择。 我建议不要手动编辑这些文件。 如果必须,请确保编辑生成的Table
和TableRecord
类,并调整所有列索引。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.