Hibernate HBMマッピングクエリ
<when_to_use>
このスキルは、Hibernate .hbm.xml マッピングファイルをクエリする際に読み込んでください。エンティティ-テーブル結合、プロパティ-カラムマッピング、コレクション関係(set/list/bag)、外部キーの発見、または60以上のHBMファイルを持つエンタープライズ永続化レイヤーのバッチスキャンを実行します。
</when_to_use>
Hibernate .hbm.xml マッピングファイルに対するdasel v3クエリ用のDomain Skillです。
属性構文(必須): XML属性はdaselのフレンドリーモード(デフォルト)で-プレフィックスを使用します。name → -name、table → -table、column → -column。
パーサーフラグ(必須): 常に -i xml を明示的に指定してください。.hbm.xml ファイルの自動検出に依存しないでください。
エンティティ発見
# 完全修飾Javaエンティティクラス名
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.-name'
# エンティティがマッピングされるデータベーステーブル
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.-table'
プロパティ-カラムマッピング
# エンティティ内のすべてのマッピングされたJavaプロパティ名
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.property.map(-name)'
# マッピングされたプロパティに対応するすべてのデータベースカラム名
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.property.map(-column)'
コレクション関係
<set>、<list>、<bag> — 一対多関係。
# すべてのsetコレクション名(一対多)
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.set.map(-name)'
# すべてのlistコレクション名
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.list.map(-name)'
外部キー発見
<many-to-one> — 他のエンティティを指す外部キーカラム。
# すべての外部キーカラム名
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.many-to-one.map(-column)'
# 参照されるすべてのエンティティクラス名(FKのターゲット)
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.many-to-one.map(-class)'
バッチエンティティ-テーブルマッピング
すべての .hbm.xml ファイルからエンティティ→テーブルのペアを抽出します。/tmp/ に出力し、ソースツリーには決して書き込まないでください。
for f in $(fdfind -e hbm.xml .); do
entity=$(cat "$f" | dasel -i xml 'hibernate-mapping.class.-name' 2>/dev/null)
table=$(cat "$f" | dasel -i xml 'hibernate-mapping.class.-table' 2>/dev/null)
echo "$entity -> $table"
done > /tmp/entity_table_map.txt
不正なファイルや欠落した属性は、2>/dev/null による抑制により空の値を生成します。