Java 类javax.persistence.OneToMany 实例源码

项目:crnk-framework    文件:JpaMetaFilter.java   
private String getMappedBy(MetaAttribute attr) {
    ManyToMany manyManyAnnotation = attr.getAnnotation(ManyToMany.class);
    OneToMany oneManyAnnotation = attr.getAnnotation(OneToMany.class);
    OneToOne oneOneAnnotation = attr.getAnnotation(OneToOne.class);
    String mappedBy = null;
    if (manyManyAnnotation != null) {
        mappedBy = manyManyAnnotation.mappedBy();
    }
    if (oneManyAnnotation != null) {
        mappedBy = oneManyAnnotation.mappedBy();
    }
    if (oneOneAnnotation != null) {
        mappedBy = oneOneAnnotation.mappedBy();
    }

    if (mappedBy != null && mappedBy.length() == 0) {
        mappedBy = null;
    }
    return mappedBy;
}
项目:crnk-framework    文件:JpaResourceFieldInformationProvider.java   
@Override
public Optional<SerializeType> getSerializeType(BeanAttributeInformation attributeDesc) {
    Optional<OneToMany> oneToMany = attributeDesc.getAnnotation(OneToMany.class);
    if (oneToMany.isPresent()) {
        return toSerializeType(oneToMany.get().fetch());
    }
    Optional<ManyToOne> manyToOne = attributeDesc.getAnnotation(ManyToOne.class);
    if (manyToOne.isPresent()) {
        return toSerializeType(manyToOne.get().fetch());
    }
    Optional<ManyToMany> manyToMany = attributeDesc.getAnnotation(ManyToMany.class);
    if (manyToMany.isPresent()) {
        return toSerializeType(manyToMany.get().fetch());
    }
    Optional<ElementCollection> elementCollection = attributeDesc.getAnnotation(ElementCollection.class);
    if (elementCollection.isPresent()) {
        return toSerializeType(elementCollection.get().fetch());
    }
    return Optional.empty();
}
项目:Equella    文件:LanguageBundle.java   
@OneToMany(cascade = CascadeType.ALL, mappedBy = "bundle")
@Fetch(value = FetchMode.SELECT)
@MapKey(name = "locale")
public Map<String, LanguageString> getStrings()
{
    return strings;
}
项目:lams    文件:EnhancementTask.java   
@Override
public boolean isMappedCollection(CtField field) {
    try {
        return (field.getAnnotation(OneToMany.class) != null ||
                field.getAnnotation(ManyToMany.class) != null ||
                field.getAnnotation(ElementCollection.class) != null);
    }
    catch (ClassNotFoundException e) {
        return false;
    }
}
项目:oscm    文件:ReflectiveClone.java   
private static boolean needsToCascade(Field field) {
    Class<?> fieldtype = field.getType();
    if (!DomainObject.class.isAssignableFrom(fieldtype))
        return false;
    Annotation ann;
    CascadeType[] cascades = null;
    ann = field.getAnnotation(OneToOne.class);
    if (ann != null) {
        cascades = ((OneToOne) ann).cascade();
    } else {
        ann = field.getAnnotation(OneToMany.class);
        if (ann != null) {
            cascades = ((OneToMany) ann).cascade();
        } else {
            ann = field.getAnnotation(ManyToOne.class);
            if (ann != null) {
                cascades = ((ManyToOne) ann).cascade();
            } else {
                ann = field.getAnnotation(ManyToMany.class);
                if (ann != null) {
                    cascades = ((ManyToMany) ann).cascade();
                }
            }
        }
    }
    if (cascades == null)
        return false;
    for (CascadeType cas : cascades) {
        if ((cas == CascadeType.ALL) || (cas == CascadeType.MERGE)
                || (cas == CascadeType.PERSIST)
                || (cas == CascadeType.REMOVE)) {
            return true;
        }
    }
    return false;
}
项目:crnk-framework    文件:JpaResourceFieldInformationProvider.java   
@Override
public Optional<String> getOppositeName(BeanAttributeInformation attributeDesc) {
    Optional<OneToMany> oneToMany = attributeDesc.getAnnotation(OneToMany.class);
    if (oneToMany.isPresent()) {
        return Optional.ofNullable(StringUtils.emptyToNull(oneToMany.get().mappedBy()));
    }
    Optional<ManyToMany> manyToMany = attributeDesc.getAnnotation(ManyToMany.class);
    if (manyToMany.isPresent()) {
        return Optional.ofNullable(StringUtils.emptyToNull(manyToMany.get().mappedBy()));
    }
    return Optional.empty();
}
项目:lams    文件:PropertyContainer.java   
private static boolean discoverTypeWithoutReflection(XProperty p) {
    if ( p.isAnnotationPresent( OneToOne.class ) && !p.getAnnotation( OneToOne.class )
            .targetEntity()
            .equals( void.class ) ) {
        return true;
    }
    else if ( p.isAnnotationPresent( OneToMany.class ) && !p.getAnnotation( OneToMany.class )
            .targetEntity()
            .equals( void.class ) ) {
        return true;
    }
    else if ( p.isAnnotationPresent( ManyToOne.class ) && !p.getAnnotation( ManyToOne.class )
            .targetEntity()
            .equals( void.class ) ) {
        return true;
    }
    else if ( p.isAnnotationPresent( ManyToMany.class ) && !p.getAnnotation( ManyToMany.class )
            .targetEntity()
            .equals( void.class ) ) {
        return true;
    }
    else if ( p.isAnnotationPresent( org.hibernate.annotations.Any.class ) ) {
        return true;
    }
    else if ( p.isAnnotationPresent( ManyToAny.class ) ) {
        if ( !p.isCollection() && !p.isArray() ) {
            throw new AnnotationException( "@ManyToAny used on a non collection non array property: " + p.getName() );
        }
        return true;
    }
    else if ( p.isAnnotationPresent( Type.class ) ) {
        return true;
    }
    else if ( p.isAnnotationPresent( Target.class ) ) {
        return true;
    }
    return false;
}
项目:java-course    文件:BlogEntry.java   
/**
 * Get all comments for current blog entry.
 * 
 * @return List of all comments for current blog entry.
 */
@OneToMany(mappedBy = "blogEntry", fetch = FetchType.LAZY,
        cascade = CascadeType.PERSIST, orphanRemoval = true)
@OrderBy("postedOn")
public List<BlogComment> getComments() {
    return comments;
}
项目:jkes    文件:EventSupport.java   
private CascadeType[] getCascadeTypes(AccessibleObject accessibleObject) {
    CascadeType[] cascadeTypes = null;
    if(accessibleObject.isAnnotationPresent(OneToMany.class)) {
        cascadeTypes = accessibleObject.getAnnotation(OneToMany.class).cascade();
    }else if(accessibleObject.isAnnotationPresent(ManyToOne.class)) {
        cascadeTypes = accessibleObject.getAnnotation(ManyToOne.class).cascade();
    }else if(accessibleObject.isAnnotationPresent(ManyToMany.class)) {
        cascadeTypes = accessibleObject.getAnnotation(ManyToMany.class).cascade();
    }
    return cascadeTypes;
}
项目:sbc-qsystem    文件:QUser.java   
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "user_id", insertable = false, nullable = false, updatable = false)
// MOSCOW
@Fetch(FetchMode.SELECT)
// Это отсечение дублирования при джойне таблици, т.к. в QPlanService есть @OneToOne к QService, и в нем есть @OneToMany к QServiceLang - дублится по
// количеству переводов
// This is the truncation of the duplication when the table joins, since In QPlanService there is @OneToOne to QService, and there is @OneToMany to
// QServiceLang - it is duplicated by the number of translations.
public List<QPlanService> getPlanServices() {
    return planServices;
}
项目:tinyshop8    文件:GoodsBrand8JPA.java   
@OneToMany(targetEntity = Goods8JPA.class, cascade = REMOVE,
          fetch = EAGER)
@JoinColumn(name = "join_goods_brand_m2o", foreignKey =
@ForeignKey(name = "fk_goods_brand_m2o"))
@JoinTable(name = "jpa_goods_brand_set", foreignKey =
@ForeignKey(name = "fk_jpa_goods_brand_set"))
public Set<Goods8JPA> getGoods8JPASet()
{
    return goods8JPASet;
}
项目:lemon    文件:DiskShare.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "diskShare")
public Set<DiskAcl> getDiskAcls() {
    return this.diskAcls;
}
项目:GitHub    文件:Product.java   
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="product")
public Set<OrderDetail> getOrderDetails() {
    return this.orderDetails;
}
项目:GitHub    文件:Office.java   
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="office")
public Set<Employee> getEmployees() {
    return this.employees;
}
项目:DocIT    文件:Company.java   
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER, mappedBy="company")
public Set<Employee> getEmployees() {
    return this.employees;
}
项目:DocIT    文件:Department.java   
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="department")
public Set<Employee> getEmployees() {
    return this.employees;
}
项目:DocIT    文件:Department.java   
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="department")
public Set<Department> getDepartments() {
    return this.departments;
}
项目:lemon    文件:WhitelistPackage.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "whitelistPackage")
public Set<WhitelistService> getWhitelistServices() {
    return this.whitelistServices;
}
项目:plumdo-work    文件:SystemMenu.java   
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "systemMenu")
public Set<SystemMenu> getSystemMenus() {
    return this.systemMenus;
}
项目:lemon    文件:TicketCatalog.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "ticketCatalog")
public Set<TicketInfo> getTicketInfos() {
    return this.ticketInfos;
}
项目:aws-photosharing-example    文件:User.java   
@XmlTransient
@LazyCollection(LazyCollectionOption.EXTRA)
@OneToMany(mappedBy = "user", orphanRemoval=true, fetch=FetchType.LAZY, cascade=CascadeType.ALL)
public List<Share> getShares() {return shares;}
项目:lemon    文件:TicketGroup.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "ticketGroup")
public Set<TicketMember> getTicketMembers() {
    return this.ticketMembers;
}
项目:lemon    文件:BookInfo.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bookInfo")
public Set<BookBorrow> getBookBorrows() {
    return this.bookBorrows;
}
项目:lemon    文件:FeedbackCatalog.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "feedbackCatalog")
public Set<FeedbackInfo> getFeedbackInfos() {
    return this.feedbackInfos;
}
项目:aws-photosharing-example    文件:Album.java   
@OneToMany(mappedBy = "album", orphanRemoval=true)    
@LazyCollection(LazyCollectionOption.EXTRA)
public List<Share> getShares() {return shares;}
项目:lemon    文件:BpmCategory.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmCategory")
@OrderBy("priority")
public Set<BpmProcess> getBpmProcesses() {
    return this.bpmProcesses;
}
项目:lemon    文件:WhitelistService.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "whitelistService")
public Set<WhitelistInfo> getWhitelistInfos() {
    return this.whitelistInfos;
}
项目:lemon    文件:BpmProcess.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmProcess")
public Set<BpmTaskDefNotice> getBpmTaskDefNotices() {
    return this.bpmTaskDefNotices;
}
项目:lemon    文件:BpmProcess.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmProcess")
public Set<BpmInstance> getBpmInstances() {
    return this.bpmInstances;
}
项目:lemon    文件:JavamailConfig.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "javamailConfig")
public Set<JavamailMessage> getJavamailMessages() {
    return this.javamailMessages;
}
项目:lemon    文件:BpmConfNode.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmConfNode")
public Set<BpmConfNotice> getBpmConfNotices() {
    return this.bpmConfNotices;
}
项目:lemon    文件:BpmConfNode.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmConfNode")
public Set<BpmConfUser> getBpmConfUsers() {
    return this.bpmConfUsers;
}
项目:tap17-muggl-javaee    文件:Vendor.java   
@OneToMany(cascade=ALL, mappedBy="vendor")
public Collection<VendorPart> getVendorParts() {
    return vendorParts;
}
项目:lemon    文件:OfficesupplyInfo.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "officesupplyInfo")
public Set<OfficesupplyReceive> getOfficesupplyReceives() {
    return this.officesupplyReceives;
}
项目:lemon    文件:PimSchedule.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "pimSchedule")
public Set<PimScheduleParticipant> getPimScheduleParticipants() {
    return this.pimScheduleParticipants;
}
项目:lemon    文件:CmsArticle.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "cmsArticle")
public Set<CmsClick> getCmsClicks() {
    return this.cmsClicks;
}
项目:lemon    文件:BpmConfNode.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmConfNode")
public Set<BpmConfOperation> getBpmConfOperations() {
    return this.bpmConfOperations;
}
项目:lams    文件:CollectionBinder.java   
protected void bindOneToManySecondPass(
        Collection collection,
        Map persistentClasses,
        Ejb3JoinColumn[] fkJoinColumns,
        XClass collectionType,
        boolean cascadeDeleteEnabled,
        boolean ignoreNotFound,
        Mappings mappings,
        Map<XClass, InheritanceState> inheritanceStatePerClass) {

    final boolean debugEnabled = LOG.isDebugEnabled();
    if ( debugEnabled ) {
        LOG.debugf( "Binding a OneToMany: %s.%s through a foreign key", propertyHolder.getEntityName(), propertyName );
    }
    org.hibernate.mapping.OneToMany oneToMany = new org.hibernate.mapping.OneToMany( mappings, collection.getOwner() );
    collection.setElement( oneToMany );
    oneToMany.setReferencedEntityName( collectionType.getName() );
    oneToMany.setIgnoreNotFound( ignoreNotFound );

    String assocClass = oneToMany.getReferencedEntityName();
    PersistentClass associatedClass = (PersistentClass) persistentClasses.get( assocClass );
    if ( jpaOrderBy != null ) {
        final String orderByFragment = buildOrderByClauseFromHql(
                jpaOrderBy.value(),
                associatedClass,
                collection.getRole()
        );
        if ( StringHelper.isNotEmpty( orderByFragment ) ) {
            collection.setOrderBy( orderByFragment );
        }
    }

    if ( mappings == null ) {
        throw new AssertionFailure(
                "CollectionSecondPass for oneToMany should not be called with null mappings"
        );
    }
    Map<String, Join> joins = mappings.getJoins( assocClass );
    if ( associatedClass == null ) {
        throw new MappingException(
                "Association references unmapped class: " + assocClass
        );
    }
    oneToMany.setAssociatedClass( associatedClass );
    for (Ejb3JoinColumn column : fkJoinColumns) {
        column.setPersistentClass( associatedClass, joins, inheritanceStatePerClass );
        column.setJoins( joins );
        collection.setCollectionTable( column.getTable() );
    }
    if ( debugEnabled ) {
        LOG.debugf( "Mapping collection: %s -> %s", collection.getRole(), collection.getCollectionTable().getName() );
    }
    bindFilters( false );
    bindCollectionSecondPass( collection, null, fkJoinColumns, cascadeDeleteEnabled, property, mappings );
    if ( !collection.isInverse()
            && !collection.getKey().isNullable() ) {
        // for non-inverse one-to-many, with a not-null fk, add a backref!
        String entityName = oneToMany.getReferencedEntityName();
        PersistentClass referenced = mappings.getClass( entityName );
        Backref prop = new Backref();
        prop.setName( '_' + fkJoinColumns[0].getPropertyName() + '_' + fkJoinColumns[0].getLogicalColumnName() + "Backref" );
        prop.setUpdateable( false );
        prop.setSelectable( false );
        prop.setCollectionRole( collection.getRole() );
        prop.setEntityName( collection.getOwner().getEntityName() );
        prop.setValue( collection.getKey() );
        referenced.addProperty( prop );
    }
}
项目:lemon    文件:BpmMailTemplate.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmMailTemplate")
public Set<BpmConfNotice> getBpmConfNotices() {
    return this.bpmConfNotices;
}
项目:lemon    文件:BpmConfBase.java   
/** @return . */
@OneToMany(fetch = FetchType.LAZY, mappedBy = "bpmConfBase")
public Set<BpmConfNode> getBpmConfNodes() {
    return this.bpmConfNodes;
}