知られているタイプのためにenum
を使用できるようになる頃、<forcedType>
を使い始めました。たとえば、私はAdminToolFeatureType
enum
に任意のadmin_tool_featury_type_id
列をマップしますforcedTypeは完全修飾名を列に受け入れることができますか?
<forcedType>
<name>AdminToolFeatureTypeConverter</name>
<expression>admin_tool_feature_type_id</expression>
</forcedType>
を持っている:
public enum AdminToolFeatureType {
BASIC, BASIC_PLUS;
public Long getValue() {
return this.ordinal() + 1L;
}
}
今のものは、それがFOREIGN KEY
が、テーブルにいた場合、私はいつも、その列admin_tool_featury_type_id
を呼び出すことですadmin_tool_feature_type
この列は、単にid
と呼ばれます。
CREATE TABLE admin_tool_feature_type (
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
-- and so on ...
);
これはadmin_tool_add_on_type
上のI JOIN
として問題となるものです:
Map<AdminToolAddOnType, AdminToolAddOnDTO> fetchMap = this.ctx.select(
ADMIN_TOOL_ADD_ON.ID,
// ..
adminToolAddOnIdToken.field(ADMIN_TOOL_ADD_ON_TYPE.ADD_ON_ID_TOKEN)
)
.from(ADMIN_TOOL_ADD_ON)
// ..
.join(adminToolAddOnIdToken)
.on(adminToolAddOnIdToken.field(ADMIN_TOOL_ADD_ON_TYPE.ADMIN_TOOL_FEATURE_TYPE_ID).eq(adminToolFeatureType)
// ADMIN_TOOL_ADD_ON_TYPE.ID is type Long
// ADMIN_TOOL_ADD_ON.ADMIN_TOOL_ADD_ON_TYPE_ID is type AdminToolAddOnType
.and(adminToolAddOnIdToken.field(ADMIN_TOOL_ADD_ON_TYPE.ID).eq(ADMIN_TOOL_ADD_ON.ADMIN_TOOL_ADD_ON_TYPE_ID)))
問題はADMIN_TOOL_ADD_ON_TYPE.ID
がLong
が、ADMIN_TOOL_ADD_ON.ADMIN_TOOL_ADD_ON_TYPE_ID
AdminToolAddOnType
を入力しているタイプであるということです。
ここで問題は、この問題を解決する最も単純な方法です。 admin_tool_feature_type.id
の名前をadmin_tool_feature_type.admin_tool_feature_type_id
に変更したくないのは、これがコーディング標準を妨げるためです。
admin_tool_feature_type.id
がLong
ではなくAdminToolAddOnType
として生成されるように、<forcedType>
を簡単に拡張できますか?
私はタイトルの意味は何だったそれのような何かを行うことが可能です場合:私はすでに、例えば試みた
<forcedType>
<name>AdminToolFeatureTypeConverter</name>
<expression>admin_tool_feature_type_id</expression>
<!-- Could be a list of fully qualified names to columns -->
<fullyQualified>
admin_tool_feature_type.id
</fullyQualified>
</forcedType>
を
<forcedType>
<name>AdminToolFeatureTypeConverter</name>
<expression>
<!-- also : my_database.admin_tool_feature_type.id, -->
admin_tool_feature_type.id,
admin_tool_feature_type_id
</expression>
</forcedType>
しかしこれは受け入れられないようです。
*「私はそれがコンマで区切られていると思ったのはわかりません」* - これは以前のバージョンのjOOQでもそうでした...誰かがテーブル名にコンマを入れてしまうまで) –
@LukasEder: Dテーブル名にコンマを付けることはできますか? O_oそれは奇妙ですが、多分私はここで私を混乱させてくれた古いバージョンのjOOQからそれを見たかもしれません:) – displayname
* "テーブル名にカンマをつけることができますか?O_o" * - 質問しないでください –