{"record":{"id":"e2d469c47d2a8a06","repo":"hibernate/hibernate-orm","slug":"embeddable-class-componentclassname-has-an-uno","errorCode":null,"errorMessage":"Embeddable class '<componentClassName>' has an unowned @OneToOne property <propertyName>mapped to a join table which is unsupported","messagePattern":"Embeddable class '<componentClassName>' has an unowned @OneToOne property <propertyName>mapped to a join table which is unsupported","errorType":"exception","errorClass":"AnnotationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/boot/model/internal/ComponentPropertyHolder.java","lineNumber":364,"sourceCode":"\t\treturn component.getTable();\n\t}\n\n\t@Override\n\tpublic void addProperty(Property prop, MemberDetails attributeMemberDetails, ClassDetails declaringClass) {\n\t\thandleGenericComponentProperty( prop, attributeMemberDetails, getContext() );\n\t\tif ( declaringClass != null ) {\n\t\t\tfinal var inheritanceState = inheritanceStatePerClass.get( declaringClass );\n\t\t\tif ( inheritanceState != null && inheritanceState.isEmbeddableSuperclass() ) {\n\t\t\t\taddPropertyToMappedSuperclass( prop, attributeMemberDetails, declaringClass, getContext() );\n\t\t\t}\n\t\t}\n\t\tcomponent.addProperty( prop, declaringClass );\n\t}\n\n\t@Override\n\tpublic void movePropertyToJoin(Property prop, Join join, MemberDetails memberDetails, ClassDetails declaringClass) {\n\t\t// or maybe only throw if component.getTable() != join.getTable()\n\t\tthrow new AnnotationException(\n\t\t\t\t\"Embeddable class '\" + component.getComponentClassName()\n\t\t\t\t+ \"' has an unowned @OneToOne property \" + prop.getName()\n\t\t\t\t+ \"mapped to a join table which is unsupported\"\n\t\t);\n\t}\n\n\t@Override\n\tpublic KeyValue getIdentifier() {\n\t\treturn component.getOwner().getIdentifier();\n\t}\n\n\t@Override\n\tpublic boolean isOrWithinEmbeddedId() {\n\t\treturn isOrWithinEmbeddedId;\n\t}\n\n\t@Override\n\tpublic boolean isWithinElementCollection() {","sourceCodeStart":346,"sourceCodeEnd":382,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/boot/model/internal/ComponentPropertyHolder.java#L346-L382","documentation":"Error \"Embeddable class '<componentClassName>' has an unowned @OneToOne property <propertyName>mapped to a join table which is unsupported\" thrown in hibernate/hibernate-orm.","triggerScenarios":"An @Embeddable / @Embedded / @ElementCollection mapping violates an embeddable mapping constraint.","commonSituations":"Embeddables with @Id members, inheritance, recursive composition, or properties split across multiple tables; or @Convert/@EmbeddedTable placed where unsupported.","solutions":["Make the @OneToOne in the embeddable the owning side without a join table, or move it out of the embeddable class."],"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"}