有时需要有以下表格:
CREATE TABLE contact_phone_type (
-- PRIMARY KEY
id BIGSERIAL PRIMARY KEY,
-- ATTRIBUTES
name VARCHAR(10) NOT NULL UNIQUE
);
INSERT INTO contact_phone_type
(name)
VALUES
('Phone'),
('Fax');
为了在以后有一个方便的和类型安全的映射,有时候很难映射到enum
类型。由于那些enum
类型必须是手写的,所以有时候第二次输入完全相同的东西有点烦人。当改变排序时,尤其令人讨厌。这意味着必须手动重新订购相应的电子邮件。
因此我想知道jOOQs代码生成器是否可以为我生成这些枚举?
我知道this question但我的用例如果到目前为止并不那么棘手。
所有发电机必须做的基本上是看看e.h.该表以_type
结尾,如果是,则创建一个枚举,其中包含指定的元素,例如按列name
并将生成的文件复制到我告诉它的目录中。
这有可能吗?
这些枚举的另一个问题是,人们还要编写相应的Converter<>
。如果代码生成器识别出&#34; type-table&#34;然后它可以创建枚举和相应的转换器。
只是一个玩具示例:
private void createDeliveryPhoneNumber(Long shopId, String deliveryPhoneNumber) {
this.ctx
.insertInto(SHOP_CONTACT_PHONE)
.set(SHOP_CONTACT_PHONE.SHOP_ID, shopId)
.set(SHOP_CONTACT_PHONE.PHONE, deliveryPhoneNumber)
.set(SHOP_CONTACT_PHONE.CONTACT_PHONE_TYPE_ID, ContactPhoneType.DELIVERY)
.execute();
}
答案 0 :(得分:0)
我知道this question但我的用例如果到目前为止并不那么棘手。
除了你的用例感知是主观的,我不同意:),这同样不是jOOQ开箱即用的链接问题中的用例(出于同样的原因)。< / p>
然而,在您的最后实现这种代码生成相当容易。或者,您可以扩展jOOQ代码生成器以生成其他类,或者您可以在完全独立的步骤中执行此操作。