O que Consultas de Mapeamento Hibernate HBM faz?
<when_to_use>
Carregue esta skill ao consultar arquivos de mapeamento Hibernate .hbm.xml — extraindo vinculações entidade-tabela, mapeamentos propriedade-coluna, relacionamentos de coleção (set/list/bag), descoberta de chaves estrangeiras, ou executando varreduras em lote em uma camada de persistência corporativa com mais de 60 arquivos HBM.
</when_to_use>
Skill de domínio para consultas dasel v3 em arquivos de mapeamento Hibernate .hbm.xml.
Sintaxe de atributo (obrigatório): Atributos XML usam prefixo - no modo amigável do dasel (padrão). name → -name, table → -table, column → -column.
Flag do parser (obrigatório): Sempre passe -i xml explicitamente. Não confie na detecção automática para arquivos .hbm.xml.
Descoberta de Entidades
# Nome completo da classe de entidade Java
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.-name'
# Tabela do banco de dados para a qual a entidade mapeia
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.-table'
Mapeamento Propriedade-Coluna
# Todos os nomes de propriedades Java mapeadas na entidade
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.property.map(-name)'
# Todos os nomes de colunas do banco de dados para propriedades mapeadas
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.property.map(-column)'
Relacionamentos de Coleção
<set>, <list>, <bag> — relacionamentos um-para-muitos.
# Todos os nomes de coleções do tipo set (um-para-muitos)
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.set.map(-name)'
# Todos os nomes de coleções do tipo list
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.list.map(-name)'
Descoberta de Chaves Estrangeiras
<many-to-one> — colunas de chave estrangeira apontando para outras entidades.
# Todos os nomes de colunas de chave estrangeira
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.many-to-one.map(-column)'
# Todos os nomes de classes de entidade referenciadas (o alvo da FK)
cat User.hbm.xml | dasel -i xml 'hibernate-mapping.class.many-to-one.map(-class)'
Mapeamento Entidade-Tabela em Lote
Extrair pares entidade→tabela em todos os arquivos .hbm.xml. Escreva em /tmp/ — nunca na árvore de origem.
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
Arquivos malformados e atributos ausentes produzem valores vazios via supressão 2>/dev/null.