001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one
003: * or more contributor license agreements. See the NOTICE file
004: * distributed with this work for additional information
005: * regarding copyright ownership. The ASF licenses this file
006: * to you under the Apache License, Version 2.0 (the
007: * "License"); you may not use this file except in compliance
008: * with the License. You may obtain a copy of the License at
009: *
010: * http://www.apache.org/licenses/LICENSE-2.0
011: *
012: * Unless required by applicable law or agreed to in writing,
013: * software distributed under the License is distributed on an
014: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015: * KIND, either express or implied. See the License for the
016: * specific language governing permissions and limitations
017: * under the License.
018: */
019: package org.apache.openjpa.persistence.jdbc.annotations;
020:
021: import java.awt.*;
022: import java.util.*;
023: import java.util.List;
024:
025: import javax.persistence.*;
026:
027: import org.apache.openjpa.jdbc.meta.strats.*;
028: import org.apache.openjpa.persistence.*;
029: import org.apache.openjpa.persistence.jdbc.*;
030:
031: @Entity
032: @Table(name="NONSTD_ENTITY")
033: @DataStoreIdColumn(name="OID")
034: @DiscriminatorStrategy(ClassNameDiscriminatorStrategy.ALIAS)
035: @DiscriminatorColumn(name="DISCRIM",length=128)
036: @XMappingOverride(name="superCollection",containerTable=@ContainerTable(name="SUP_COLL",joinColumns=@XJoinColumn(name="OWNER")),elementColumns=@ElementColumn(name="SUP_ELEM"))
037: public class NonstandardMappingEntity extends
038: NonstandardMappingMappedSuper {
039:
040: @Persistent(fetch=FetchType.LAZY)
041: @Strategy("org.apache.openjpa.persistence.jdbc.annotations.PointHandler")
042: @Columns({@Column(name="X_COL"),@Column(name="Y_COL")})
043: @Index(name="PNT_IDX")
044: private Point custom;
045:
046: @PersistentCollection(elementType=String.class)
047: @ContainerTable(name="STRINGS_COLL",joinColumns=@XJoinColumn(name="OWNER"),joinIndex=@Index(enabled=false))
048: @ElementColumn(name="STR_ELEM",length=127)
049: @OrderColumn(name="ORDER_COL")
050: @ElementIndex
051: private List stringCollection = new ArrayList();
052:
053: @PersistentCollection
054: @ContainerTable(name="JOIN_COLL",joinColumns=@XJoinColumn(name="OWNER"),joinForeignKey=@ForeignKey)
055: @ElementJoinColumn(name="JOIN_ELEM")
056: @ElementForeignKey
057: @ElementNonpolymorphic(NonpolymorphicType.JOINABLE)
058: private List<NonstandardMappingEntity> joinCollection = new ArrayList<NonstandardMappingEntity>();
059:
060: @PersistentMap(keyType=String.class,elementType=String.class)
061: @ContainerTable(name="STRINGS_MAP",joinColumns=@XJoinColumn(name="OWNER"),joinIndex=@Index(enabled=false))
062: @KeyColumn(name="STR_KEY",length=127)
063: @ElementColumn(name="STR_VAL",length=127)
064: @KeyIndex
065: @ElementIndex
066: private Map stringMap = new HashMap();
067:
068: @PersistentMap
069: @ContainerTable(name="JOIN_MAP",joinColumns=@XJoinColumn(name="OWNER"),joinForeignKey=@ForeignKey)
070: @KeyJoinColumn(name="JOIN_KEY")
071: @KeyForeignKey
072: @KeyNonpolymorphic
073: @ElementJoinColumn(name="JOIN_VAL")
074: @ElementForeignKey
075: @ElementNonpolymorphic
076: private Map<NonstandardMappingEntity, NonstandardMappingEntity> joinMap = new HashMap<NonstandardMappingEntity, NonstandardMappingEntity>();
077:
078: @Embedded
079: @EmbeddedMapping(nullIndicatorAttributeName="uuid",overrides={@MappingOverride(name="rel",joinColumns=@XJoinColumn(name="EM_REL_ID")),@MappingOverride(name="eager",containerTable=@ContainerTable(name="EM_EAGER"),elementJoinColumns=@ElementJoinColumn(name="ELEM_EAGER_ID"))})
080: private ExtensionsEntity embed;
081:
082: @PersistentCollection(elementEmbedded=true)
083: @ContainerTable(name="EMBED_COLL")
084: @ElementEmbeddedMapping(overrides={@XMappingOverride(name="basic",columns=@Column(name="EM_BASIC"))})
085: private List<EmbedValue2> embedCollection = new ArrayList<EmbedValue2>();
086:
087: public Point getCustom() {
088: return this .custom;
089: }
090:
091: public void setCustom(Point custom) {
092: this .custom = custom;
093: }
094:
095: public List getStringCollection() {
096: return this .stringCollection;
097: }
098:
099: public List<NonstandardMappingEntity> getJoinCollection() {
100: return this .joinCollection;
101: }
102:
103: public Map getStringMap() {
104: return this .stringMap;
105: }
106:
107: public Map<NonstandardMappingEntity, NonstandardMappingEntity> getJoinMap() {
108: return this .joinMap;
109: }
110:
111: public ExtensionsEntity getEmbed() {
112: return this .embed;
113: }
114:
115: public void setEmbed(ExtensionsEntity embed) {
116: this .embed = embed;
117: }
118:
119: public List<EmbedValue2> getEmbedCollection() {
120: return this.embedCollection;
121: }
122: }
|