Hibernate HBM 매핑 쿼리
<when_to_use>
Hibernate .hbm.xml 매핑 파일을 질의할 때 — 엔티티-테이블 바인딩, 프로퍼티-컬럼 매핑, 컬렉션 관계(set/list/bag), 외래 키 탐색, 또는 60개 이상의 HBM 파일을 포함한 엔터프라이즈 퍼시스턴스 레이어의 배치 스캔을 실행할 때 이 스킬을 로드합니다.
</when_to_use>
Hibernate .hbm.xml 매핑 파일에 대한 dasel v3 쿼리용 도메인 스킬입니다.
속성 구문 (필수): dasel 프렌들리 모드(기본값)에서 XML 속성은 - 접두사를 사용합니다. 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 억제를 통해 빈 값을 생성합니다.