下面列出了javax.persistence.Embedded#javax.persistence.AttributeOverride 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* @param mergeWithAnnotations Whether to use Java annotations for this
* element, if present and not disabled by the XMLContext defaults.
* In some contexts (such as an association mapping) merging with
* annotations is never allowed.
*/
private AttributeOverrides mergeAttributeOverrides(XMLContext.Default defaults, List<AttributeOverride> attributes, boolean mergeWithAnnotations) {
if ( mergeWithAnnotations && defaults.canUseJavaAnnotations() ) {
AttributeOverride annotation = getPhysicalAnnotation( AttributeOverride.class );
addAttributeOverrideIfNeeded( annotation, attributes );
AttributeOverrides annotations = getPhysicalAnnotation( AttributeOverrides.class );
if ( annotations != null ) {
for ( AttributeOverride current : annotations.value() ) {
addAttributeOverrideIfNeeded( current, attributes );
}
}
}
if ( attributes.size() > 0 ) {
AnnotationDescriptor ad = new AnnotationDescriptor( AttributeOverrides.class );
ad.setValue( "value", attributes.toArray( new AttributeOverride[attributes.size()] ) );
return AnnotationFactory.create( ad );
}
else {
return null;
}
}
private List<AttributeOverride> buildAttributeOverrides(List<Element> subelements, String nodeName) {
List<AttributeOverride> overrides = new ArrayList<>();
if ( subelements != null && subelements.size() > 0 ) {
for ( Element current : subelements ) {
if ( !current.getName().equals( nodeName ) ) {
continue;
}
AnnotationDescriptor override = new AnnotationDescriptor( AttributeOverride.class );
copyStringAttribute( override, current, "name", true );
Element column = current.element( "column" );
override.setValue( "column", getColumn( column, true, current ) );
overrides.add( AnnotationFactory.create( override ) );
}
}
return overrides;
}
private boolean mappingDefinedAttributeOverrideOnMapKey(XProperty property) {
if ( property.isAnnotationPresent( AttributeOverride.class ) ) {
return namedMapKey( property.getAnnotation( AttributeOverride.class ) );
}
if ( property.isAnnotationPresent( AttributeOverrides.class ) ) {
final AttributeOverrides annotations = property.getAnnotation( AttributeOverrides.class );
for ( AttributeOverride attributeOverride : annotations.value() ) {
if ( namedMapKey( attributeOverride ) ) {
return true;
}
}
}
return false;
}
public static final AttributeOverride[] getAttributeOverrides(final AnnotatedElement ae) {
AttributeOverride[] overrides = null;
final AttributeOverrides aos = ae.getAnnotation(AttributeOverrides.class);
if (aos != null) {
overrides = aos.value();
}
if (overrides == null || overrides.length == 0) {
final AttributeOverride override = ae.getAnnotation(AttributeOverride.class);
if (override != null) {
overrides = new AttributeOverride[1];
overrides[0] = override;
} else {
overrides = new AttributeOverride[0];
}
}
return overrides;
}
@DB()
protected String buildSelectByIdSql(final StringBuilder sql) {
if (_idField == null) {
return null;
}
if (_idField.getAnnotation(EmbeddedId.class) == null) {
sql.append(_table).append(".").append(DbUtil.getColumnName(_idField, null)).append(" = ? ");
} else {
final Class<?> clazz = _idField.getClass();
final AttributeOverride[] overrides = DbUtil.getAttributeOverrides(_idField);
for (final Field field : clazz.getDeclaredFields()) {
sql.append(_table).append(".").append(DbUtil.getColumnName(field, overrides)).append(" = ? AND ");
}
sql.delete(sql.length() - 4, sql.length());
}
return sql.toString();
}
public static final AttributeOverride[] getAttributeOverrides(AnnotatedElement ae) {
AttributeOverride[] overrides = null;
AttributeOverrides aos = ae.getAnnotation(AttributeOverrides.class);
if (aos != null) {
overrides = aos.value();
}
if (overrides == null || overrides.length == 0) {
AttributeOverride override = ae.getAnnotation(AttributeOverride.class);
if (override != null) {
overrides = new AttributeOverride[1];
overrides[0] = override;
} else {
overrides = new AttributeOverride[0];
}
}
return overrides;
}
@DB()
protected String buildSelectByIdSql(final StringBuilder sql) {
if (_idField == null) {
return null;
}
if (_idField.getAnnotation(EmbeddedId.class) == null) {
sql.append(_table).append(".").append(DbUtil.getColumnName(_idField, null)).append(" = ? ");
} else {
final Class<?> clazz = _idField.getClass();
final AttributeOverride[] overrides = DbUtil.getAttributeOverrides(_idField);
for (final Field field : clazz.getDeclaredFields()) {
sql.append(_table).append(".").append(DbUtil.getColumnName(field, overrides)).append(" = ? AND ");
}
sql.delete(sql.length() - 4, sql.length());
}
return sql.toString();
}
/**
* As per sections 12.2.3.23.9, 12.2.4.8.9 and 12.2.5.3.6 of the JPA 2.0
* specification, the element-collection subelement completely overrides the
* mapping for the specified field or property. Thus, any methods which
* might in some contexts merge with annotations must not do so in this
* context.
*/
private void getElementCollection(List<Annotation> annotationList, XMLContext.Default defaults) {
for ( Element element : elementsForProperty ) {
if ( "element-collection".equals( element.getName() ) ) {
AnnotationDescriptor ad = new AnnotationDescriptor( ElementCollection.class );
addTargetClass( element, ad, "target-class", defaults );
getFetchType( ad, element );
getOrderBy( annotationList, element );
getOrderColumn( annotationList, element );
getMapKey( annotationList, element );
getMapKeyClass( annotationList, element, defaults );
getMapKeyTemporal( annotationList, element );
getMapKeyEnumerated( annotationList, element );
getMapKeyColumn( annotationList, element );
buildMapKeyJoinColumns( annotationList, element );
Annotation annotation = getColumn( element.element( "column" ), false, element );
addIfNotNull( annotationList, annotation );
getTemporal( annotationList, element );
getEnumerated( annotationList, element );
getLob( annotationList, element );
//Both map-key-attribute-overrides and attribute-overrides
//translate into AttributeOverride annotations, which need
//need to be wrapped in the same AttributeOverrides annotation.
List<AttributeOverride> attributes = new ArrayList<>();
attributes.addAll( buildAttributeOverrides( element, "map-key-attribute-override" ) );
attributes.addAll( buildAttributeOverrides( element, "attribute-override" ) );
annotation = mergeAttributeOverrides( defaults, attributes, false );
addIfNotNull( annotationList, annotation );
annotation = getAssociationOverrides( element, defaults, false );
addIfNotNull( annotationList, annotation );
getCollectionTable( annotationList, element, defaults );
annotationList.add( AnnotationFactory.create( ad ) );
getAccessType( annotationList, element );
}
}
}
private void addAttributeOverrideIfNeeded(AttributeOverride annotation, List<AttributeOverride> overrides) {
if ( annotation != null ) {
String overrideName = annotation.name();
boolean present = false;
for ( AttributeOverride current : overrides ) {
if ( current.name().equals( overrideName ) ) {
present = true;
break;
}
}
if ( !present ) {
overrides.add( annotation );
}
}
}
public static String getColumnName(final Field field, final AttributeOverride[] overrides) {
if (overrides != null) {
for (final AttributeOverride override : overrides) {
if (override.name().equals(field.getName())) {
return override.column().name();
}
}
}
assert (field.getAnnotation(Embedded.class) == null) : "Cannot get column name from embedded field: " + field.getName();
final Column column = field.getAnnotation(Column.class);
return column != null ? column.name() : field.getName();
}
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "studentId", column = @Column(name = "STUDENT_ID", nullable = false, precision = 5, scale = 0)),
@AttributeOverride(name = "classesId", column = @Column(name = "CLASSES_ID", nullable = false, precision = 4, scale = 0)),
@AttributeOverride(name = "status", column = @Column(name = "STU_CLASSES_STATUS", nullable = false, length = 1)) })
public StudentClassesId getId() {
return this.id;
}
/**
* Gets the source.
*
* @return the source
*/
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "value", column = @Column(name = "SOURCE_VALUE")),
@AttributeOverride(name = "id", column = @Column(name = "SOURCE_ID"))
})
public Source getSource() {
return source;
}
/**
* Gets the embedded id.
*
* @return the embedded id
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "issue", column = @Column(name = "EMBEDDED_ID_ISSUE")),
@AttributeOverride(name = "ballotId", column = @Column(name = "EMBEDDED_ID_BALLOT_ID")),
@AttributeOverride(name = "intressentId", column = @Column(name = "EMBEDDED_ID_INTRESSENT_ID")),
@AttributeOverride(name = "concern", column = @Column(name = "EMBEDDED_ID_CONCERN"))
})
public VoteDataEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link ViewRiksdagenPartyBallotSupportAnnualSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "date", column = @Column(name = "EMBEDDED_ID_DATE")),
@AttributeOverride(name = "party", column = @Column(name = "EMBEDDED_ID_PARTY")),
@AttributeOverride(name = "otherParty", column = @Column(name = "EMBEDDED_ID_OTHER_PARTY"))
})
public ViewRiksdagenPartyBallotSupportAnnualSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link ViewRiksdagenPartyCoalationAgainstAnnualSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "year", column = @Column(name = "EMBEDDED_ID_YEAR", precision = 10, scale = 0)),
@AttributeOverride(name = "groupAgainst", column = @Column(name = "EMBEDDED_ID_GROUP_AGAINST"))
})
public ViewRiksdagenPartyCoalationAgainstAnnualSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenCommitteeEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "detail", column = @Column(name = "EMBEDDED_ID_DETAIL")),
@AttributeOverride(name = "orgCode", column = @Column(name = "EMBEDDED_ID_ORG_CODE"))
})
public RiksdagenCommitteeEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPoliticianPeriodSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "voteDate", column = @Column(name = "EMBEDDED_ID_VOTE_DATE")),
@AttributeOverride(name = "intressentId", column = @Column(name = "EMBEDDED_ID_INTRESSENT_ID"))
})
public RiksdagenVoteDataBallotPoliticianPeriodSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "ballotId", column = @Column(name = "EMBEDDED_ID_BALLOT_ID")),
@AttributeOverride(name = "concern", column = @Column(name = "EMBEDDED_ID_CONCERN")),
@AttributeOverride(name = "issue", column = @Column(name = "EMBEDDED_ID_ISSUE"))
})
public RiksdagenVoteDataBallotEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link ViewRiksdagenCommitteeBallotDecisionPartyEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "EMBEDDED_ID_ID")),
@AttributeOverride(name = "party", column = @Column(name = "EMBEDDED_ID_PARTY")),
@AttributeOverride(name = "hangarId", column = @Column(name = "EMBEDDED_ID_HANGAR_ID", precision = 20, scale = 10)),
@AttributeOverride(name = "issue", column = @Column(name = "EMBEDDED_ID_ISSUE")),
@AttributeOverride(name = "concern", column = @Column(name = "EMBEDDED_ID_CONCERN"))
})
public ViewRiksdagenCommitteeBallotDecisionPartyEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "voteDate", column = @Column(name = "EMBEDDED_ID_VOTE_DATE")),
@AttributeOverride(name = "party", column = @Column(name = "EMBEDDED_ID_PARTY"))
})
public RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPoliticianPeriodSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "voteDate", column = @Column(name = "EMBEDDED_ID_VOTE_DATE")),
@AttributeOverride(name = "intressentId", column = @Column(name = "EMBEDDED_ID_INTRESSENT_ID"))
})
public RiksdagenVoteDataBallotPoliticianPeriodSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "voteDate", column = @Column(name = "EMBEDDED_ID_VOTE_DATE")),
@AttributeOverride(name = "party", column = @Column(name = "EMBEDDED_ID_PARTY"))
})
public RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link ViewRiksdagenCommitteeDecisionsEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "EMBEDDED_ID_ID")),
@AttributeOverride(name = "hangarId", column = @Column(name = "EMBEDDED_ID_HANGAR_ID", precision = 20, scale = 10)),
@AttributeOverride(name = "issueNummer", column = @Column(name = "EMBEDDED_ID_ISSUE_NUMMER", precision = 20, scale = 10))
})
public ViewRiksdagenCommitteeDecisionsEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "voteDate", column = @Column(name = "EMBEDDED_ID_VOTE_DATE")),
@AttributeOverride(name = "party", column = @Column(name = "EMBEDDED_ID_PARTY"))
})
public RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link ViewRiksdagenCommitteeBallotDecisionPoliticianEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "EMBEDDED_ID_ID")),
@AttributeOverride(name = "intressentId", column = @Column(name = "EMBEDDED_ID_INTRESSENT_ID")),
@AttributeOverride(name = "hangarId", column = @Column(name = "EMBEDDED_ID_HANGAR_ID", precision = 20, scale = 10)),
@AttributeOverride(name = "issue", column = @Column(name = "EMBEDDED_ID_ISSUE")),
@AttributeOverride(name = "concern", column = @Column(name = "EMBEDDED_ID_CONCERN"))
})
public ViewRiksdagenCommitteeBallotDecisionPoliticianEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPoliticianPeriodSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "voteDate", column = @Column(name = "EMBEDDED_ID_VOTE_DATE")),
@AttributeOverride(name = "intressentId", column = @Column(name = "EMBEDDED_ID_INTRESSENT_ID"))
})
public RiksdagenVoteDataBallotPoliticianPeriodSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenCommitteeDecisionTypeSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "decisionDate", column = @Column(name = "EMBEDDED_ID_DECISION_DATE")),
@AttributeOverride(name = "decisionType", column = @Column(name = "EMBEDDED_ID_DECISION_TYPE"))
})
public RiksdagenCommitteeDecisionTypeSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPartyEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "ballotId", column = @Column(name = "EMBEDDED_ID_BALLOT_ID")),
@AttributeOverride(name = "concern", column = @Column(name = "EMBEDDED_ID_CONCERN")),
@AttributeOverride(name = "issue", column = @Column(name = "EMBEDDED_ID_ISSUE")),
@AttributeOverride(name = "party", column = @Column(name = "EMBEDDED_ID_PARTY"))
})
public RiksdagenVoteDataBallotPartyEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPoliticianEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "ballotId", column = @Column(name = "EMBEDDED_ID_BALLOT_ID")),
@AttributeOverride(name = "concern", column = @Column(name = "EMBEDDED_ID_CONCERN")),
@AttributeOverride(name = "issue", column = @Column(name = "EMBEDDED_ID_ISSUE")),
@AttributeOverride(name = "intressentId", column = @Column(name = "EMBEDDED_ID_INTRESSENT_ID"))
})
public RiksdagenVoteDataBallotPoliticianEmbeddedId getEmbeddedId() {
return embeddedId;
}
/**
* Gets the value of the embeddedId property.
*
* @return
* possible object is
* {@link RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId }
*
*/
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "voteDate", column = @Column(name = "EMBEDDED_ID_VOTE_DATE")),
@AttributeOverride(name = "party", column = @Column(name = "EMBEDDED_ID_PARTY"))
})
public RiksdagenVoteDataBallotPartyPeriodSummaryEmbeddedId getEmbeddedId() {
return embeddedId;
}