@Override public void addAnyMetaDef(AnyMetaDef defAnn) { if ( anyMetaDefs == null ) { anyMetaDefs = new HashMap<>(); } else { if ( anyMetaDefs.containsKey( defAnn.name() ) ) { throw new AnnotationException( "Two @AnyMetaDef with the same name defined: " + defAnn.name() ); } } anyMetaDefs.put( defAnn.name(), defAnn ); }
@ManyToAny( metaColumn = @Column( name = "property_type" ) ) @AnyMetaDef( idType = "integer", metaType = "string", metaValues = { @MetaValue( value = "S", targetEntity = StringProperty.class ), @MetaValue( value = "I", targetEntity = IntegerProperty.class ) } ) @Cascade( { org.hibernate.annotations.CascadeType.ALL } ) @JoinTable( name = "obj_properties", joinColumns = @JoinColumn( name = "obj_id" ), inverseJoinColumns = @JoinColumn( name = "property_id" ) ) public List<Property> getGeneralProperties() { return generalProperties; }
value.setIdentifierType( metaAnnDef.idType() ); value.setMetaType( metaAnnDef.metaType() ); for (MetaValue metaValue : metaAnnDef.metaValues()) { try { Object discrim = ( (org.hibernate.type.DiscriminatorType) metaType ).stringToObject( metaValue
value.setIdentifierType( metaAnnDef.idType() ); value.setMetaType( metaAnnDef.metaType() ); for (MetaValue metaValue : metaAnnDef.metaValues()) { try { Object discrim = ( (org.hibernate.type.DiscriminatorType) metaType ).stringToObject( metaValue
value.setIdentifierType( metaAnnDef.idType() ); value.setMetaType( metaAnnDef.metaType() ); for (MetaValue metaValue : metaAnnDef.metaValues()) { try { Object discrim = ( (org.hibernate.type.DiscriminatorType) metaType ).stringToObject( metaValue
private static void checkAnyMetaDefValidity(boolean mustHaveName, AnyMetaDef defAnn, XAnnotatedElement annotatedElement) { if ( mustHaveName && isEmptyAnnotationValue( defAnn.name() ) ) { String name = XClass.class.isAssignableFrom( annotatedElement.getClass() ) ? ( (XClass) annotatedElement ).getName() : ( (XPackage) annotatedElement ).getName(); throw new AnnotationException( "@AnyMetaDef.name cannot be null on an entity or a package: " + name ); } }
@Embeddable public static class FooEmbeddable { @AnyMetaDef(idType = "integer", metaType = "string", metaValues = { @MetaValue(value = "1", targetEntity = Bar1.class), @MetaValue(value = "2", targetEntity = Bar2.class) }) @Any(metaColumn = @Column(name = "bar_type")) @JoinColumn(name = "bar_id") private BarInt bar; public BarInt getBar() { return bar; } public void setBar(BarInt bar) { this.bar = bar; } }
value.setIdentifierType( metaAnnDef.idType() ); value.setMetaType( metaAnnDef.metaType() ); for (MetaValue metaValue : metaAnnDef.metaValues()) { try { Object discrim = ( (org.hibernate.type.DiscriminatorType) metaType ).stringToObject( metaValue
private static void bindAnyMetaDef(AnyMetaDef defAnn, MetadataBuildingContext context) { if ( isEmptyAnnotationValue( defAnn.name() ) ) { //don't map not named definitions return; } if ( LOG.isDebugEnabled() ) { LOG.debugf( "Binding Any Meta definition: %s", defAnn.name() ); } context.getMetadataCollector().addAnyMetaDef( defAnn ); }
@Any( metaColumn = @Column( name = "property_type" ) ) @Cascade( value = { CascadeType.ALL } ) @AnyMetaDef( idType = "integer", metaType = "string", metaValues = { @MetaValue( value = "S", targetEntity = StringProperty.class ), @MetaValue( value = "I", targetEntity = IntegerProperty.class ) } ) @JoinColumn( name = "property_id" ) public Property getSomeProperty() { return someProperty; }
value.setIdentifierType( metaAnnDef.idType() ); value.setMetaType( metaAnnDef.metaType() ); .getJavaTypeDescriptorRegistry() .getDescriptor( value.getMetaType() ); for (MetaValue metaValue : metaAnnDef.metaValues()) { try { Object discrim = javaTypeDescriptor.fromString( metaValue.value() );
@Any( metaColumn = @Column( name = "property_type" ), fetch = FetchType.LAZY ) @Cascade( value = { CascadeType.ALL } ) @AnyMetaDef( idType = "integer", metaType = "string", metaValues = { @MetaValue( value = "S", targetEntity = StringProperty.class ), @MetaValue( value = "I", targetEntity = IntegerProperty.class ) } ) @JoinColumn( name = "property_id" ) public Property getSomeProperty() { return someProperty; }
@ManyToAny( metaColumn = @Column( name = "property_type" ) ) @AnyMetaDef( idType = "integer", metaType = "string", metaValues = { @MetaValue( value = "S", targetEntity = StringProperty.class ), @MetaValue( value = "I", targetEntity = IntegerProperty.class ) } ) @Cascade( org.hibernate.annotations.CascadeType.ALL ) @JoinTable( name = "map_properties", joinColumns = @JoinColumn( name = "map_id" ), inverseJoinColumns = @JoinColumn( name = "property_id" ) ) @MapKeyColumn( name = "map_key", nullable = false ) //keep for legacy test public Map<String, Property> getProperties() { return properties; }
private static void checkAnyMetaDefValidity(boolean mustHaveName, AnyMetaDef defAnn, XAnnotatedElement annotatedElement) { if ( mustHaveName && isDefault( defAnn.name() ) ) { String name = XClass.class.isAssignableFrom( annotatedElement.getClass() ) ? ( (XClass) annotatedElement ).getName() : ( (XPackage) annotatedElement ).getName(); throw new AnnotationException( "@AnyMetaDef.name cannot be null on an entity or a package: " + name ); } }
@Any(metaColumn = @Column(name = "property_type")) @AnyMetaDef(idType = "long", metaType = "string", metaValues = { @MetaValue(targetEntity = example.Tractor.class, value = "tractor"), @MetaValue(targetEntity = example.Smartphone.class, value = "smartphone") }) @JoinColumn(name = "property_id") @ToOne public Device getMyStuff() { return myStuff; } }
@Override public void addAnyMetaDef(AnyMetaDef defAnn) { if ( anyMetaDefs == null ) { anyMetaDefs = new HashMap<>(); } else { if ( anyMetaDefs.containsKey( defAnn.name() ) ) { throw new AnnotationException( "Two @AnyMetaDef with the same name defined: " + defAnn.name() ); } } anyMetaDefs.put( defAnn.name(), defAnn ); }