项目:lams
文件:JPAOverriddenAnnotationReader.java
/**
* @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 element-collection mapping) merging
* with annotations is never allowed.
*/
private AssociationOverrides getAssociationOverrides(Element tree,XMLContext.Default defaults,boolean mergeWithAnnotations) {
List<AssociationOverride> attributes = buildAssociationOverrides( tree,defaults );
if ( mergeWithAnnotations && defaults.canUseJavaAnnotations() ) {
AssociationOverride annotation = getPhysicalAnnotation( AssociationOverride.class );
addAssociationOverrideIfNeeded( annotation,attributes );
AssociationOverrides annotations = getPhysicalAnnotation( AssociationOverrides.class );
if ( annotations != null ) {
for ( AssociationOverride current : annotations.value() ) {
addAssociationOverrideIfNeeded( current,attributes );
}
}
}
if ( attributes.size() > 0 ) {
AnnotationDescriptor ad = new AnnotationDescriptor( AssociationOverrides.class );
ad.setValue( "value",attributes.toArray( new AssociationOverride[attributes.size()] ) );
return AnnotationFactory.create( ad );
}
else {
return null;
}
}
项目:lams
文件:JPAOverriddenAnnotationReader.java
private List<AssociationOverride> buildAssociationOverrides(Element element,XMLContext.Default defaults) {
List<Element> subelements = element == null ? null : element.elements( "association-override" );
List<AssociationOverride> overrides = new ArrayList<AssociationOverride>();
if ( subelements != null && subelements.size() > 0 ) {
for ( Element current : subelements ) {
AnnotationDescriptor override = new AnnotationDescriptor( AssociationOverride.class );
copyStringAttribute( override,current,"name",true );
override.setValue( "joinColumns",getJoinColumns( current,false ) );
JoinTable joinTable = buildJoinTable( current,defaults );
if ( joinTable != null ) {
override.setValue( "joinTable",joinTable );
}
overrides.add( (AssociationOverride) AnnotationFactory.create( override ) );
}
}
return overrides;
}
项目:org.fastnate
文件:EntityClass.java
/**
* Builds the property for the given attribute.
*
* @param attribute
* the attribute to inspect
* @param columnMetadata
* the attached (or overriden) column Metadata
* @param override
* the AssociationOverride found for this attribute
* @return the property that represents the attribute or {@code null} if not persistent
*/
<X> Property<X,?> buildProperty(final AttributeAccessor attribute,final Column columnMetadata,final AssociationOverride override) {
if (attribute.isPersistent()) {
if (CollectionProperty.isCollectionProperty(attribute)) {
return new CollectionProperty<>(this,attribute,override);
} else if (MapProperty.isMapProperty(attribute)) {
return new MapProperty<>(this,override);
} else if (EntityProperty.isEntityProperty(attribute)) {
return new EntityProperty<>(this.context,getTable(),override);
} else if (attribute.isAnnotationPresent(Embedded.class)) {
return new EmbeddedProperty<>(this,attribute);
} else if (attribute.isAnnotationPresent(Version.class)) {
return new VersionProperty<>(this.context,this.table,columnMetadata);
} else {
return new PrimitiveProperty<>(this.context,columnMetadata);
}
}
return null;
}
项目:org.fastnate
文件:PluralProperty.java
/**
* Builds the name of the table of the association for the given field.
*
* @param attribute
* the inspected field
* @param override
* contains optional override options
* @param joinTable
* the optional join table
* @param collectionTable
* the optional Metadata of the table
* @param defaultTableName
* the default name for the table
* @return the table name
*/
protected static String buildTableName(final AttributeAccessor attribute,final AssociationOverride override,final JoinTable joinTable,final CollectionTable collectionTable,final String defaultTableName) {
if (override != null) {
final JoinTable joinTableOverride = override.joinTable();
if (joinTableOverride != null && joinTableOverride.name().length() > 0) {
return joinTableOverride.name();
}
}
if (joinTable != null && joinTable.name().length() > 0) {
return joinTable.name();
}
if (collectionTable != null && collectionTable.name().length() > 0) {
return collectionTable.name();
}
return defaultTableName;
}
项目:lams
文件:AbstractPropertyHolder.java
private static Map<String,JoinColumn[]> buildJoinColumnOverride(XAnnotatedElement element,String path) {
Map<String,JoinColumn[]> columnOverride = new HashMap<String,JoinColumn[]>();
if ( element == null ) return columnOverride;
AssociationOverride singleOverride = element.getAnnotation( AssociationOverride.class );
AssociationOverrides multipleOverrides = element.getAnnotation( AssociationOverrides.class );
AssociationOverride[] overrides;
if ( singleOverride != null ) {
overrides = new AssociationOverride[] { singleOverride };
}
else if ( multipleOverrides != null ) {
overrides = multipleOverrides.value();
}
else {
overrides = null;
}
//fill overridden columns
if ( overrides != null ) {
for (AssociationOverride depAttr : overrides) {
columnOverride.put(
StringHelper.qualify( path,depAttr.name() ),depAttr.joinColumns()
);
}
}
return columnOverride;
}
项目:lams
文件:AbstractPropertyHolder.java
private static Map<String,JoinTable> buildJoinTableOverride(XAnnotatedElement element,JoinTable> tableOverride = new HashMap<String,JoinTable>();
if ( element == null ) return tableOverride;
AssociationOverride singleOverride = element.getAnnotation( AssociationOverride.class );
AssociationOverrides multipleOverrides = element.getAnnotation( AssociationOverrides.class );
AssociationOverride[] overrides;
if ( singleOverride != null ) {
overrides = new AssociationOverride[] { singleOverride };
}
else if ( multipleOverrides != null ) {
overrides = multipleOverrides.value();
}
else {
overrides = null;
}
//fill overridden tables
if ( overrides != null ) {
for (AssociationOverride depAttr : overrides) {
if ( depAttr.joinColumns().length == 0 ) {
tableOverride.put(
StringHelper.qualify( path,depAttr.joinTable()
);
}
}
}
return tableOverride;
}
项目:lams
文件:JPAOverriddenAnnotationReader.java
private void addAssociationOverrideIfNeeded(AssociationOverride annotation,List<AssociationOverride> overrides) {
if ( annotation != null ) {
String overrideName = annotation.name();
boolean present = false;
for ( AssociationOverride current : overrides ) {
if ( current.name().equals( overrideName ) ) {
present = true;
break;
}
}
if ( !present ) {
overrides.add( annotation );
}
}
}
项目:Harvest-JP
文件:IdoDataU.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "StrCode")),@AssociationOverride(name = "pk.getSudo",joinColumns = @JoinColumn(name = "GetSudo")),@AssociationOverride(name = "pk.bunruiKbn",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:KtData.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:MenuD.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.parent",joinColumns = @JoinColumn(name = "ProGNo")),@AssociationOverride(name = "pk.srProNo",joinColumns = @JoinColumn(name = "SrProNo"))
})
public MenuIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:BudgetPerformanceWorktable.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",@AssociationOverride(name = "pk.account",joinColumns = @JoinColumn(name = "KmkCode"))
})
public BudgetPerformanceWorktableIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:UriDataM.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:UriDataSK.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "GetSudo"))
})
public ClassificationCategoryWithoutBunruiKbnIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:Stamp.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",@AssociationOverride(name = "pk.srDate",joinColumns = @JoinColumn(name = "SrDate"))
})
public StampAndLaborCostIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:UriDataKR.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "GetSudo"))
})
public ClassificationCategoryWithoutBunruiKbnIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:IdoDataH.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",@AssociationOverride(name = "pk.vendor",joinColumns = @JoinColumn(name = "SrsCode")),@AssociationOverride(name = "pk.category",joinColumns = @JoinColumn(name = "CtgCode"))
})
public SectorvendorIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:KnData.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:VJiseki.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "StrCode",columnDeFinition = "tinyint")),joinColumns = @JoinColumn(name = "GetSudo",columnDeFinition = "tinyint"))
})
public ClassificationCategoryWithoutBunruiKbnIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:HelpDataH.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:LaborCostWorktable.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",@AssociationOverride(name = "pk.jinjiKbn",joinColumns = @JoinColumn(name = "JinjiKbn")),@AssociationOverride(name = "pk.shoriDate",joinColumns = @JoinColumn(name = "ShoriDate"))
})
public LaborCostWorktableIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:Cash.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "SrDate"))
})
public SalesChangeIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:SalesFixed.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "GetSudo")) })
public SalesFixedIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:HelpDataU.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:BudgetPerformance.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",@AssociationOverride(name = "pk.kmkCodeJ",joinColumns = @JoinColumn(name = "KmkCodeJ"))
})
public BudgetPerformanceIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:Purchase.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "SrDate")),joinColumns = @JoinColumn(name = "CtgCode")),@AssociationOverride(name = "pk.wakuNum",joinColumns = @JoinColumn(name = "WakuNum"))
})
public PurchaseIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:KnDataM.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:Inventory.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "CtgCode"))
})
public InventoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:MonthlyPurchase.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "CtgCode"))
})
public MonthlyPurchaseIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:LaborCost.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "SrDate"))
})
public StampAndLaborCostIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:KgcData.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "BunruiKbn"))
})
public ClassificationCategoryIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:VJkData.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "GetSudo"))
})
public ClassificationCategoryWithoutBunruiKbnIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:MonthlySales.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",@AssociationOverride(name = "pk.ugKbn",joinColumns = @JoinColumn(name = "UgKbn")),joinColumns = @JoinColumn(name = "CtgCode"))
})
public MonthlySalesIdentifier getPk() {
return pk;
}
项目:Harvest-JP
文件:SalesChange.java
@EmbeddedId
@AssociationOverrides({
@AssociationOverride(name = "pk.organization",joinColumns = @JoinColumn(name = "SrDate"))
})
public SalesChangeIdentifier getPk() {
return pk;
}
项目:org.fastnate
文件:EntityClass.java
/**
* Funds all association overrides that are attached to the given field or class.
*
* @param fieldOrClass
* the annotated element
* @return a mapping from the name of the override to its deFinition,empty if neither {@link AssociationOverrides}
* nor {@link AssociationOverride} are given
*/
static Map<String,AssociationOverride> getAccociationOverrides(final AnnotatedElement fieldOrClass) {
final AssociationOverrides multiOverride = fieldOrClass.getAnnotation(AssociationOverrides.class);
final AssociationOverride singleOverride = fieldOrClass.getAnnotation(AssociationOverride.class);
if (multiOverride == null && singleOverride == null) {
return Collections.emptyMap();
}
final Collection<AssociationOverride> config = new ArrayList<>();
// Multi annotation
if (multiOverride != null) {
config.addAll(Arrays.asList(multiOverride.value()));
}
// Single annotion
if (singleOverride != null) {
config.add(singleOverride);
}
final Map<String,AssociationOverride> attributeOverrides = new HashMap<>();
for (final AssociationOverride override : config) {
attributeOverrides.put(override.name(),override);
}
return attributeOverrides;
}
项目:org.fastnate
文件:CollectionProperty.java
/**
* Creates a new collection property.
*
* @param sourceClass
* the description of the current inspected class that contains this property
* @param attribute
* accessor to the represented attribute
* @param override
* the configured assocation override
*/
public CollectionProperty(final EntityClass<?> sourceClass,final AttributeAccessor attribute,final AssociationOverride override) {
super(sourceClass,override,0);
// Read a potentially defined order column
final OrderColumn orderColumnDef = attribute.getAnnotation(OrderColumn.class);
this.orderColumn = orderColumnDef == null ? null
: getTable().resolveColumn(
orderColumnDef.name().length() == 0 ? attribute.getName() + "_ORDER" : orderColumnDef.name());
}
/**
* Instantiates a new embedded property.
*
* @param entityClass
* the class of the entity
* @param attribute
* the attribute that contains the embedded object
*/
public EmbeddedProperty(final EntityClass<?> entityClass,final AttributeAccessor attribute) {
super(attribute);
this.id = attribute.isAnnotationPresent(EmbeddedId.class);
final Class<?> type = attribute.getType();
if (!type.isAnnotationPresent(Embeddable.class)) {
throw new IllegalArgumentException(attribute + " does reference " + type + " which is not embeddable.");
}
// Determine the access style
final Accessstyle accessstyle;
final Access accesstype = type.getAnnotation(Access.class);
if (accesstype != null) {
accessstyle = Accessstyle.getStyle(accesstype.value());
} else {
accessstyle = attribute.getAccessstyle();
}
final Map<String,AttributeOverride> attributeOverrides = EntityClass
.getAttributeOverrides(attribute.getElement());
final Map<String,AssociationOverride> accociationOverrides = EntityClass
.getAccociationOverrides(attribute.getElement());
for (final AttributeAccessor field : accessstyle.getDeclaredAttributes((Class<Object>) type,type)) {
final AttributeOverride attrOveride = attributeOverrides.get(field.getName());
final Property<T,?> property = entityClass.buildProperty(field,attrOveride != null ? attrOveride.column() : field.getAnnotation(Column.class),accociationOverrides.get(field.getName()));
if (property != null) {
this.embeddedProperties.put(field.getName(),property);
}
}
}
项目:org.fastnate
文件:EntityProperty.java
/**
* Creates a new instance of {@link EntityProperty}.
*
* @param context
* the generator context.
* @param containerTable
* the table that contains our column
* @param attribute
* the accessor of the attribute
* @param override
* optional {@link AttributeOverride} configuration.
*/
public EntityProperty(final GeneratorContext context,final GeneratorTable containerTable,@Nullable final AssociationOverride override) {
super(attribute);
this.context = context;
// Initialize the target class description
this.targetClass = context.getDescription((Class<T>) attribute.getType());
// Initialize according to the *ToOne annotations
final Mapping@R_341_4045@ion mapping = new Mapping@R_341_4045@ion(attribute);
this.required = !mapping.isOptional();
this.mappedBy = mapping.getMappedBy().length() == 0 ? null : mapping.getMappedBy();
final MapsId mapsId = attribute.getAnnotation(MapsId.class);
this.idField = mapsId != null ? mapsId.value() : null;
// Initialize the column name
if (this.mappedBy == null) {
final JoinColumn joinColumn = override != null && override.joinColumns().length > 0
? override.joinColumns()[0]
: attribute.getAnnotation(JoinColumn.class);
if (joinColumn != null && joinColumn.name().length() > 0) {
this.column = containerTable.resolveColumn(joinColumn.name());
} else {
this.column = containerTable.resolveColumn(attribute.getName() + "_"
+ (this.targetClass == null ? "id" : this.targetClass.getIdColumn(attribute)));
}
} else {
this.column = null;
}
// Initialize ANY Meta @R_341_4045@ion
final String anyColumnName = mapping.getAnyMetaColumn();
if (anyColumnName != null) {
this.anyColumn = containerTable.resolveColumn(anyColumnName);
fillMetaDefs(attribute,context.getDialect());
} else {
this.anyColumn = null;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。