外だし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 になりました。