Requêtes de Mapping Hibernate HBM
<when_to_use>
Charger cette compétence lors de l'interrogation de fichiers de mapping Hibernate .hbm.xml — extraction des liaisons entité-table, des mappings propriété-colonne, des relations de collection (set/list/bag), de la découverte de clés étrangères, ou de l'analyse par lots d'une couche de persistance d'entreprise contenant plus de 60 fichiers HBM.
</when_to_use>
Compétence de domaine pour les requêtes dasel v3 sur les fichiers de mapping Hibernate .hbm.xml.
Syntaxe d'attribut (obligatoire) : Les attributs XML utilisent le préfixe - en mode friendly de dasel (valeur par défaut). name → -name, table → -table, column → -column.
Indicateur d'analyseur (obligatoire) : Toujours passer -i xml explicitement. Ne pas se fier à la détection automatique pour les fichiers .hbm.xml.
Découverte d'Entité
# Nom de classe Java entièrement qualifié
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.-name'
# Table de base de données mappée par l'entité
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.-table'
Mapping Propriété-Colonne
# Tous les noms de propriétés Java mappés dans l'entité
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.property.map(-name)'
# Tous les noms de colonnes de base de données pour les propriétés mappées
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.property.map(-column)'
Relations de Collection
<set>, <list>, <bag> — relations one-to-many.
# Tous les noms de collections de type set (one-to-many)
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.set.map(-name)'
# Tous les noms de collections de type list
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.list.map(-name)'
Découverte de Clés Étrangères
<many-to-one> — colonnes de clés étrangères pointant vers d'autres entités.
# Tous les noms de colonnes de clés étrangères
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.many-to-one.map(-column)'
# Tous les noms de classes d'entités référencées (la cible de la FK)
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.many-to-one.map(-class)'
Mapping Par Lots Entité-Table
Extraire les paires entité→table dans tous les fichiers .hbm.xml. Écrire dans /tmp/ — jamais dans l'arborescence source.
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
Les fichiers mal formés et les attributs manquants produisent des valeurs vides grâce à la suppression 2>/dev/null.