FetchType fetchType; if ( oneToMany != null ) { fetchType = oneToMany.fetch();
Relation relation = new Relation(relationField, targetEntity, relationField.getType(), ann.fetch(), Arrays.asList(ann.cascade()), Boolean.TRUE, ann.mappedBy(), Relation.ForeignKey.ONE_TO_MANY);
private void readToOne(OneToMany propAnn, DeployBeanPropertyAssocMany<?> manyProp) { manyProp.setMappedBy(propAnn.mappedBy()); manyProp.setFetchType(propAnn.fetch()); setCascadeTypes(propAnn.cascade(), manyProp.getCascadeInfo()); Class<?> targetType = propAnn.targetEntity(); if (targetType.equals(void.class)) { // via reflection of generics type targetType = manyProp.getTargetType(); } else { manyProp.setTargetType(targetType); } BeanTable assoc = factory.getBeanTable(targetType); if (assoc == null) { throw new BeanNotRegisteredException(errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName())); } manyProp.setBeanTable(assoc); manyProp.getTableJoin().setType(SqlJoinType.OUTER); }
public static boolean collectioOneToManyWithLazy(Field field) { if (!ReflectionUtils.isCollection(field)) { return false; } if (!field.isAnnotationPresent(OneToMany.class)) { return false; } OneToMany oneToMany = field.getAnnotation(OneToMany.class); return oneToMany.fetch() == FetchType.LAZY; }
@Override protected String getFetch(Field field) { return field.getAnnotation(OneToMany.class).fetch().name(); } @Override
public static boolean collectioOneToManyWithLazy(Field field) { if (!ReflectionUtils.isCollection(field)) { return false; } if (!field.isAnnotationPresent(OneToMany.class)) { return false; } OneToMany oneToMany = field.getAnnotation(OneToMany.class); return oneToMany.fetch() == FetchType.LAZY; }
/** * INTERNAL: (Overridden in XMLOneToManyAccessor) */ public String getFetchType() { return (m_oneToMany == null) ? MetadataConstants.LAZY : m_oneToMany.fetch().name(); }
public static <T> T findEager(EntityManager em, Class<T> type, Object id) { T entity = em.find(type, id); for (Field field: type.getDeclaredFields()) { OneToMany annotation = field.getAnnotation(OneToMany.class); if (annotation != null) { if (annotation.fetch().equals(FetchType.LAZY)) { try { new PropertyDescriptor(field.getName(), type).getReadMethod().invoke(entity); } catch (Exception e) { e.printStackTrace(); } } } } return entity; }
/** * Determina si un campo o miembro es una clave foranea cuyo fetch = Lazy * * @param <T> * @param classType clase DataRow dado * @param fieldname nombre del campo * @return Verdadero si fetch = Lazy */ public static <T extends IDataRow> boolean isLazyFetch(Class<T> classType, String fieldname) { try { Field field = DataInfo.getDeclaredField(classType, fieldname); OneToMany annotation = field.getAnnotation(OneToMany.class); return annotation.fetch() == FetchType.LAZY; } catch (Exception ex) { return false; } }
private boolean isLazy() { if ( oneToOne != null ) { return oneToOne.fetch() == FetchType.LAZY; } if ( oneToMany != null ) { return oneToMany.fetch() == FetchType.LAZY; } if ( manyToOne != null ) { return manyToOne.fetch() == FetchType.LAZY; } return false; }
FetchType fetchType; if ( oneToMany != null ) { fetchType = oneToMany.fetch();
private void introspectOneToMany(OneToMany oneToMany) { Class targetClass = oneToMany.targetEntity(); if (! void.class.equals(targetClass)) setTargetEntity(targetClass); setCascadeTypes(oneToMany.cascade()); setFetch(oneToMany.fetch()); _mappedBy = oneToMany.mappedBy(); }
private void readToOne(OneToMany propAnn, DeployBeanPropertyAssocMany<?> manyProp) { manyProp.setMappedBy(propAnn.mappedBy()); manyProp.setFetchType(propAnn.fetch()); setCascadeTypes(propAnn.cascade(), manyProp.getCascadeInfo()); Class<?> targetType = propAnn.targetEntity(); if (targetType.equals(void.class)) { // via reflection of generics type targetType = manyProp.getTargetType(); } else { manyProp.setTargetType(targetType); } BeanTable assoc = factory.getBeanTable(targetType); if (assoc == null) { String msg = errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName()); throw new RuntimeException(msg); } manyProp.setBeanTable(assoc); manyProp.getTableJoin().setType(TableJoin.LEFT_OUTER); }
private void readToOne(OneToMany propAnn, DeployBeanPropertyAssocMany<?> manyProp) { manyProp.setMappedBy(propAnn.mappedBy()); manyProp.setFetchType(propAnn.fetch()); setCascadeTypes(propAnn.cascade(), manyProp.getCascadeInfo()); Class<?> targetType = propAnn.targetEntity(); if (targetType.equals(void.class)) { // via reflection of generics type targetType = manyProp.getTargetType(); } else { manyProp.setTargetType(targetType); } BeanTable assoc = factory.getBeanTable(targetType); if (assoc == null) { String msg = errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName()); throw new RuntimeException(msg); } manyProp.setBeanTable(assoc); manyProp.getTableJoin().setType(TableJoin.LEFT_OUTER); }
private void readToOne(OneToMany propAnn, DeployBeanPropertyAssocMany<?> manyProp) { manyProp.setMappedBy(propAnn.mappedBy()); manyProp.setFetchType(propAnn.fetch()); setCascadeTypes(propAnn.cascade(), manyProp.getCascadeInfo()); Class<?> targetType = propAnn.targetEntity(); if (targetType.equals(void.class)) { // via reflection of generics type targetType = manyProp.getTargetType(); } else { manyProp.setTargetType(targetType); } BeanTable assoc = factory.getBeanTable(targetType); if (assoc == null) { String msg = errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName()); throw new RuntimeException(msg); } manyProp.setBeanTable(assoc); manyProp.getTableJoin().setType(SqlJoinType.OUTER); }
private void readToOne(OneToMany propAnn, DeployBeanPropertyAssocMany<?> manyProp) { manyProp.setMappedBy(propAnn.mappedBy()); manyProp.setFetchType(propAnn.fetch()); setCascadeTypes(propAnn.cascade(), manyProp.getCascadeInfo()); Class<?> targetType = propAnn.targetEntity(); if (targetType.equals(void.class)) { // via reflection of generics type targetType = manyProp.getTargetType(); } else { manyProp.setTargetType(targetType); } BeanTable assoc = factory.getBeanTable(targetType); if (assoc == null) { throw new BeanNotRegisteredException(errorMsgMissingBeanTable(targetType, manyProp.getFullBeanName())); } manyProp.setBeanTable(assoc); manyProp.getTableJoin().setType(SqlJoinType.OUTER); }
/** * Parse @OneToMany. */ private void parseOneToMany(FieldMetaData fmd, OneToMany anno) { switch (fmd.getDeclaredTypeCode()) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: if (JavaTypes.maybePC(fmd.getElement())) break; // no break default: throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "OneToMany")); } fmd.setInDefaultFetchGroup(anno.fetch() == FetchType.EAGER); if (isMappingOverrideMode() && !StringUtils.isEmpty(anno.mappedBy())) fmd.setMappedBy(anno.mappedBy()); if (anno.targetEntity() != void.class) fmd.getElement().setDeclaredType(anno.targetEntity()); setCascades(fmd.getElement(), anno.cascade()); }
/** * Parse @OneToMany. */ private void parseOneToMany(FieldMetaData fmd, OneToMany anno) { switch (fmd.getDeclaredTypeCode()) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: if (JavaTypes.maybePC(fmd.getElement())) break; // no break default: throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "OneToMany")); } fmd.setInDefaultFetchGroup(anno.fetch() == FetchType.EAGER); if (isMappingOverrideMode() && !StringUtils.isEmpty(anno.mappedBy())) fmd.setMappedBy(anno.mappedBy()); if (anno.targetEntity() != void.class) fmd.getElement().setDeclaredType(anno.targetEntity()); setCascades(fmd.getElement(), anno.cascade()); setOrphanRemoval(fmd.getElement(), anno.orphanRemoval()); fmd.setAssociationType(FieldMetaData.ONE_TO_MANY); }
/** * Parse @OneToMany. */ private void parseOneToMany(FieldMetaData fmd, OneToMany anno) { switch (fmd.getDeclaredTypeCode()) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: if (JavaTypes.maybePC(fmd.getElement())) break; // no break default: throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "OneToMany")); } fmd.setInDefaultFetchGroup(anno.fetch() == FetchType.EAGER); if (isMappingOverrideMode() && !StringUtils.isEmpty(anno.mappedBy())) fmd.setMappedBy(anno.mappedBy()); if (anno.targetEntity() != void.class) fmd.getElement().setDeclaredType(anno.targetEntity()); setCascades(fmd.getElement(), anno.cascade()); setOrphanRemoval(fmd.getElement(), anno.orphanRemoval()); fmd.setAssociationType(FieldMetaData.ONE_TO_MANY); }
/** * Parse @OneToMany. */ private void parseOneToMany(FieldMetaData fmd, OneToMany anno) { switch (fmd.getDeclaredTypeCode()) { case JavaTypes.ARRAY: case JavaTypes.COLLECTION: case JavaTypes.MAP: if (JavaTypes.maybePC(fmd.getElement())) break; // no break default: throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "OneToMany")); } fmd.setInDefaultFetchGroup(anno.fetch() == FetchType.EAGER); if (isMappingOverrideMode() && !StringUtil.isEmpty(anno.mappedBy())) fmd.setMappedBy(anno.mappedBy()); if (anno.targetEntity() != void.class) fmd.getElement().setDeclaredType(anno.targetEntity()); setCascades(fmd.getElement(), anno.cascade()); setOrphanRemoval(fmd.getElement(), anno.orphanRemoval()); fmd.setAssociationType(FieldMetaData.ONE_TO_MANY); }