/** * @return the annotatedObj */ @Any(metaColumn = @Column(name = "annotatedObjType"), optional = true, fetch = FetchType.LAZY,metaDef = "AnnotationMetaDef") @JoinColumn(name = "annotatedObjId", nullable = true) @JsonSerialize(using = AnnotatableObjectSerializer.class) public Base getAnnotatedObj() { return annotatedObj; }
/** * @return the commentPage */ @Any(metaColumn = @Column(name = "commentPage_type"), fetch = FetchType.LAZY, metaDef = "CommentMetaDef") @JoinColumn(name = "commentPage_id", nullable = true) @JsonSerialize(using = AnnotatableObjectSerializer.class) public Base getCommentPage() { return commentPage; }
/** * @return the aboutData */ @Any(metaColumn = @Column(name = "aboutData_type"), fetch = FetchType.LAZY, metaDef = "CommentMetaDef") @JoinColumn(name = "aboutData_id", nullable = true) @JsonSerialize(using = AnnotatableObjectSerializer.class) public Base getAboutData() { return aboutData; }
@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; }
MappingInformation(final AttributeAccessor attribute) { final OneToOne oneToOne = attribute.getAnnotation(OneToOne.class); final NotNull notNull = attribute.getAnnotation(NotNull.class); if (oneToOne != null) { this.optional = oneToOne.optional() && notNull == null; this.mappedBy = oneToOne.mappedBy(); this.anyMetaColumn = null; } else { this.mappedBy = ""; final ManyToOne manyToOne = attribute.getAnnotation(ManyToOne.class); if (manyToOne != null) { this.optional = manyToOne.optional() && notNull == null; this.anyMetaColumn = null; } else { final Any any = attribute.getAnnotation(Any.class); if (any != null) { this.optional = any.optional() && notNull == null; this.anyMetaColumn = any.metaColumn().name(); } else { final ManyToAny manyToAny = attribute.getAnnotation(ManyToAny.class); if (manyToAny == null) { throw new IllegalArgumentException( attribute + " is neither declared as OneToOne nor ManyToOne"); } this.optional = notNull == null; this.anyMetaColumn = manyToAny.metaColumn().name(); } } } }
@Any(metaColumn = @Column(name = "annotatedObjType"), optional = true, fetch = FetchType.LAZY,metaDef = "AnnotationMetaDef") @JoinColumn(name = "annotatedObjId", nullable = true) @JsonSerialize(using = AnnotatableObjectSerializer.class) public Base getAnnotatedObj() { return annotatedObj; }
/** * Indicates that the given attribute references an entity and may be used by an {@link EntityProperty}. * * @param attribute * accessor of the attribute to check * @return {@code true} if an {@link EntityProperty} may be created for the given attribute */ static boolean isEntityProperty(final AttributeAccessor attribute) { return attribute.isAnnotationPresent(OneToOne.class) || attribute.isAnnotationPresent(ManyToOne.class) || attribute.isAnnotationPresent(Any.class) || attribute.isAnnotationPresent(ManyToAny.class); }