外だしsQLのタイトル (OutsidesqlTitle)
Good Bye, 無言のsQL
無言のプログラムもつらいですが、(他人の作った)無言のsQLはさらに増してつらいものです。
DBFluteでは、外だしsQLのタイトルと説明を必須にしています。@since 1.1.0
外だしsQLのヘッダーコメント
ヘッダーコメントの形式
"[タイトル]説明" という形式でタイトルと説明を書きます。@since 1.1.0-sp6
e.g. ヘッダーコメントについて @Outsidesql
/*
[ここにタイトルを書いて!sQLを識別できる業務的なタイトルをー]
ここに説明を書いて!sQLの全体的な特徴とか特殊な点とか注意点とかー
*/
-- #df:entity#
-- !df:pmb!
-- !!AutoDetect!!
select ...
from ...
where ...
order by ...
古いバージョンでのヘッダーコメントの形式
DBFluteの古いバージョンだと、[df:title], [df:description] 形式になります。
e.g. ヘッダーコメントについて @Outsidesql
/*
[df:title]
ここにタイトルを書いて!sQLを識別できる業務的なタイトルをー
[df:description]
ここに説明を書いて!sQLの全体的な特徴とか特殊な点とか注意点とかー
*/
-- #df:entity#
-- !df:pmb!
-- !!AutoDetect!!
select ...
from ...
where ...
order by ...
OutsidesqlTestタスクでチェック
もし、ヘッダーコメントがなかったら、OutsidesqlTestタスクでチェックされます。
e.g. ヘッダーコメントがなかったら怒られる @Outsidesql
[df-outside-sql-test] org.dbflute.exception.DfRequiredOutsidesqlTitleNotFoundException: Look! Read the message below.
[df-outside-sql-test] /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
[df-outside-sql-test] The outsidesql title was not found!
[df-outside-sql-test]
[df-outside-sql-test] [Advice]
[df-outside-sql-test] Outsidesql title is required in this project
[df-outside-sql-test] because the property 'isRequiredsqlTitle' of outsidesqlMap.dfprop is true.
[df-outside-sql-test] so you should add title comment in your outside-sQL like this:
[df-outside-sql-test] /= = = = = = = = = = = = = = = = = = =
[df-outside-sql-test] /*
[df-outside-sql-test] [simple Member select] // *here
[df-outside-sql-test] This sQL is ...
[df-outside-sql-test] */
[df-outside-sql-test] -- #df:entity#
[df-outside-sql-test]
[df-outside-sql-test] -- !df:pmb!
[df-outside-sql-test] -- !!AutoDetect!!
[df-outside-sql-test]
[df-outside-sql-test] select ...
[df-outside-sql-test] from ...
[df-outside-sql-test] where ...
[df-outside-sql-test] = = = = = = = = = = /
dfpropによるON/OFF
DBFlute-1.0.x (Java6版) では、もともとデフォルトではありませんでした。 dfpropで有効にしていました。
outsidesqlMap.dfprop (旧outsidesqlDefinitionMap.dfprop) の、isRequiredsqlTitle と isRequiredsqlDescription です。 これが、DBFlute-1.1.x (Java8版) からは、デフォルトが true になりました。