{"record":{"id":"545a2184da1cc470","repo":"hibernate/hibernate-orm","slug":"error-transforming-component","errorCode":null,"errorMessage":"Error transforming <component/> : {}","messagePattern":"Error transforming <component/> : (.+?)","errorType":"exception","errorClass":"TransformationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java","lineNumber":2154,"sourceCode":"\t\t\telse if ( hbmAttributeMapping instanceof JaxbHbmCompositeAttributeType hbmComponent ) {\n\t\t\t\ttry {\n\t\t\t\t\tfinal String componentRole = roleBase + \".\" + hbmComponent.getName();\n\t\t\t\t\tfinal var componentTypeInfo = transformationState.getEmbeddableInfoByRole().get( componentRole );\n\t\t\t\t\tfinal var jaxbEmbeddable = componentHandler.applyEmbeddable(\n\t\t\t\t\t\t\troleBase,\n\t\t\t\t\t\t\thbmComponent,\n\t\t\t\t\t\t\tcomponentTypeInfo\n\t\t\t\t\t);\n\t\t\t\t\tfinal var embedded = componentHandler.transformEmbedded( jaxbEmbeddable, hbmComponent, componentTypeInfo );\n\t\t\t\t\ttransferAccess(\n\t\t\t\t\t\t\thbmComponent.getAccess(),\n\t\t\t\t\t\t\tembedded::setAccess,\n\t\t\t\t\t\t\tembedded::setAttributeAccessor\n\t\t\t\t\t);\n\t\t\t\t\tattributes.getEmbeddedAttributes().add( embedded );\n\t\t\t\t}\n\t\t\t\tcatch (Exception e) {\n\t\t\t\t\tthrow new TransformationException( \"Error transforming <component/> : \" + hbmComponent.getName(), e, origin() );\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if ( hbmAttributeMapping instanceof JaxbHbmPropertiesType hbmProperties ) {\n\t\t\t\t// while we could simply \"unwrap\" the <properties/> itself and inline the attributes,\n\t\t\t\t// <properties/> is most often used to create a target for property-ref mappings - that\n\t\t\t\t// we could not support without a new sort of annotation - e.g.\n\t\t\t\t//\n\t\t\t\t// @interface PropertyGroup {\n\t\t\t\t// \t\tString name();\n\t\t\t\t//\t\tString[] propertyNames();\n\t\t\t\t// }\n\t\t\t\t//\n\t\t\t\t// where the `name` could then be used for `@PropertyRef`\n\t\t\t\thandleUnsupported( \"<properties/> mappings not supported for transformation [name=%s]\", hbmProperties.getName() );\n\t\t\t}\n\t\t\telse if ( hbmAttributeMapping instanceof JaxbHbmDynamicComponentType dynamicComponentType) {\n\t\t\t\tfinal String name = dynamicComponentType.getName();\n\t\t\t\thandleUnsupported(","sourceCodeStart":2136,"sourceCodeEnd":2172,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/boot/jaxb/hbm/transform/HbmXmlTransformer.java#L2136-L2172","documentation":"Error \"Error transforming <component/> : {}\" thrown in hibernate/hibernate-orm.","triggerScenarios":"The hbm.xml to mapping.xml transformer hits an unexpected structure.","commonSituations":"Converting legacy hbm.xml documents containing constructs the transformer does not handle.","solutions":["Inspect the reported <component/> element for malformed nested properties or unsupported attributes.","Check the component's class name and nested element definitions in the hbm.xml.","Review the causal exception to identify the exact component attribute that failed transformation."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}