List<CascadeType> cascades = new ArrayList<>( Arrays.asList( oneToOne.cascade() ) ); if ( !cascades.contains( CascadeType.ALL ) && !cascades.contains( CascadeType.PERSIST ) ) { cascades.add( CascadeType.PERSIST );
Arrays.asList(oneToOneAnn.cascade()), oneToOneAnn.optional(), oneToOneAnn.mappedBy(), Relation.ForeignKey.ONE_TO_ONE);
@Override protected CascadeType[] getCascade(Field field) { return field.getAnnotation(OneToOne.class).cascade(); } },
private void readOneToOne(OneToOne propAnn, DeployBeanPropertyAssocOne<?> prop) { prop.setOneToOne(); prop.setDbInsertable(true); prop.setDbUpdateable(true); prop.setNullable(propAnn.optional()); prop.setFetchType(propAnn.fetch()); prop.setMappedBy(propAnn.mappedBy()); if (!"".equals(propAnn.mappedBy())) { prop.setOneToOneExported(); prop.setOrphanRemoval(propAnn.orphanRemoval()); } else if (propAnn.orphanRemoval()) { prop.setOrphanRemoval(true); } setCascadeTypes(propAnn.cascade(), prop.getCascadeInfo()); prop.setBeanTable(beanTable(prop)); }
/** * INTERNAL: (Overridden in XMLOneToOneAccessor) */ public List<String> getCascadeTypes() { if (m_oneToOne == null) { return new ArrayList<String>(); } else { return getCascadeTypes(m_oneToOne.cascade()); } }
@Override public CascadeType[] getCascadeTypes() { return getRelationshipAnnotation().cascade(); }
getCascadeStrategy( ann.cascade(), hibernateCascade, ann.orphanRemoval(), forcePersist ), joinColumns, !mandatory,
public static boolean isOneToOneAndCascadeRemove(Object entityMaster, EntityType<?> entiyType) { for (Field field : entityMaster.getClass().getDeclaredFields()) { if (!ReflectionUtils.getGenericClass(field).equals(entiyType.getJavaType())) { continue; } OneToOne oneToOne = field.getAnnotation(OneToOne.class); if (oneToOne == null) { continue; } return Arrays .stream(oneToOne.cascade()) .anyMatch(c -> CascadeType.ALL.equals(c) || CascadeType.REMOVE.equals(c)); } return false; }
public static boolean isOneToOneAndCascadeRemove(Object entityMaster, EntityType<?> entiyType) { for (Field field : entityMaster.getClass().getDeclaredFields()) { if (!ReflectionUtils.getGenericClass(field).equals(entiyType.getJavaType())) { continue; } OneToOne oneToOne = field.getAnnotation(OneToOne.class); if (oneToOne == null) { continue; } return Arrays .stream(oneToOne.cascade()) .anyMatch(c -> CascadeType.ALL.equals(c) || CascadeType.REMOVE.equals(c)); } return false; }
/** * Retrieves cascade from metamodel attribute on a xToMany relation. * * @param attribute given singular attribute * @return an empty collection if no jpa relation annotation can be found. */ public Collection<CascadeType> getCascades(SingularAttribute<?, ?> attribute) { if (attribute.getJavaMember() instanceof AccessibleObject) { AccessibleObject accessibleObject = (AccessibleObject) attribute.getJavaMember(); OneToOne oneToOne = accessibleObject.getAnnotation(OneToOne.class); if (oneToOne != null) { return newArrayList(oneToOne.cascade()); } ManyToOne manyToOne = accessibleObject.getAnnotation(ManyToOne.class); if (manyToOne != null) { return newArrayList(manyToOne.cascade()); } } return newArrayList(); }
/** * Retrieves cascade from metamodel attribute on a xToMany relation. * * @return an empty collection if no jpa relation annotation can be found. */ public Collection<CascadeType> getCascades(SingularAttribute<?, ?> attribute) { if (attribute.getJavaMember() instanceof AccessibleObject) { AccessibleObject accessibleObject = (AccessibleObject) attribute.getJavaMember(); OneToOne oneToOne = accessibleObject.getAnnotation(OneToOne.class); if (oneToOne != null) { return newArrayList(oneToOne.cascade()); } ManyToOne manyToOne = accessibleObject.getAnnotation(ManyToOne.class); if (manyToOne != null) { return newArrayList(manyToOne.cascade()); } } return newArrayList(); }
private void introspectOneToOne(OneToOne oneToOne) { Class targetClass = oneToOne.targetEntity(); if (void.class.equals(targetClass)) targetClass = _fieldType; setTargetEntity(targetClass); setCascadeTypes(oneToOne.cascade()); setFetch(oneToOne.fetch()); _isOptional = oneToOne.optional(); _mappedBy = oneToOne.mappedBy(); }
private void readOneToOne(OneToOne propAnn, DeployBeanPropertyAssocOne<?> prop) { prop.setOneToOne(true); prop.setDbInsertable(true); prop.setDbUpdateable(true); prop.setNullable(propAnn.optional()); prop.setFetchType(propAnn.fetch()); prop.setMappedBy(propAnn.mappedBy()); if (!"".equals(propAnn.mappedBy())) { prop.setOneToOneExported(true); } setCascadeTypes(propAnn.cascade(), prop.getCascadeInfo()); BeanTable assoc = factory.getBeanTable(prop.getPropertyType()); if (assoc == null) { String msg = errorMsgMissingBeanTable(prop.getPropertyType(), prop.getFullBeanName()); throw new RuntimeException(msg); } prop.setBeanTable(assoc); }
private void readOneToOne(OneToOne propAnn, DeployBeanPropertyAssocOne<?> prop) { prop.setOneToOne(); prop.setDbInsertable(true); prop.setDbUpdateable(true); prop.setNullable(propAnn.optional()); prop.setFetchType(propAnn.fetch()); prop.setMappedBy(propAnn.mappedBy()); if (!"".equals(propAnn.mappedBy())) { prop.setOneToOneExported(); } setCascadeTypes(propAnn.cascade(), prop.getCascadeInfo()); BeanTable assoc = factory.getBeanTable(prop.getPropertyType()); if (assoc == null) { String msg = errorMsgMissingBeanTable(prop.getPropertyType(), prop.getFullBeanName()); throw new RuntimeException(msg); } prop.setBeanTable(assoc); }
private void readOneToOne(OneToOne propAnn, DeployBeanPropertyAssocOne<?> prop) { prop.setOneToOne(true); prop.setDbInsertable(true); prop.setDbUpdateable(true); prop.setNullable(propAnn.optional()); prop.setFetchType(propAnn.fetch()); prop.setMappedBy(propAnn.mappedBy()); if (!"".equals(propAnn.mappedBy())) { prop.setOneToOneExported(true); } setCascadeTypes(propAnn.cascade(), prop.getCascadeInfo()); BeanTable assoc = factory.getBeanTable(prop.getPropertyType()); if (assoc == null) { String msg = errorMsgMissingBeanTable(prop.getPropertyType(), prop.getFullBeanName()); throw new RuntimeException(msg); } prop.setBeanTable(assoc); }
/** * Parse @OneToOne. */ private void parseOneToOne(FieldMetaData fmd, OneToOne anno) { if (!JavaTypes.maybePC(fmd.getValue())) throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "OneToOne")); // don't specifically exclude relation from DFG b/c that will prevent // us from even reading the fk when reading from the primary table, // which is not what most users will want if (anno.fetch() == FetchType.EAGER) fmd.setInDefaultFetchGroup(true); if (!anno.optional()) fmd.setNullValue(FieldMetaData.NULL_EXCEPTION); if (isMappingOverrideMode() && !StringUtils.isEmpty(anno.mappedBy())) fmd.setMappedBy(anno.mappedBy()); if (anno.targetEntity() != void.class) fmd.setTypeOverride(anno.targetEntity()); setCascades(fmd, anno.cascade()); }
private void readOneToOne(OneToOne propAnn, DeployBeanPropertyAssocOne<?> prop) { prop.setOneToOne(); prop.setDbInsertable(true); prop.setDbUpdateable(true); prop.setNullable(propAnn.optional()); prop.setFetchType(propAnn.fetch()); prop.setMappedBy(propAnn.mappedBy()); if (!"".equals(propAnn.mappedBy())) { prop.setOneToOneExported(); prop.setOrphanRemoval(propAnn.orphanRemoval()); } else if (propAnn.orphanRemoval()) { prop.setOrphanRemoval(true); } setCascadeTypes(propAnn.cascade(), prop.getCascadeInfo()); prop.setBeanTable(beanTable(prop)); }
getCascadeStrategy( ann.cascade(), hibernateCascade, ann.orphanRemoval(), forcePersist ), joinColumns, !mandatory,
/** * Parse @OneToOne. */ private void parseOneToOne(FieldMetaData fmd, OneToOne anno) { if (!JavaTypes.maybePC(fmd.getValue())) throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "OneToOne")); // don't specifically exclude relation from DFG b/c that will prevent // us from even reading the fk when reading from the primary table, // which is not what most users will want if (anno.fetch() == FetchType.EAGER) fmd.setInDefaultFetchGroup(true); if (!anno.optional()) fmd.setNullValue(FieldMetaData.NULL_EXCEPTION); if (isMappingOverrideMode() && !StringUtils.isEmpty(anno.mappedBy())) fmd.setMappedBy(anno.mappedBy()); if (anno.targetEntity() != void.class) fmd.setTypeOverride(anno.targetEntity()); setCascades(fmd, anno.cascade()); setOrphanRemoval(fmd, anno.orphanRemoval()); fmd.setAssociationType(FieldMetaData.ONE_TO_ONE); }
/** * Parse @OneToOne. */ private void parseOneToOne(FieldMetaData fmd, OneToOne anno) { if (!JavaTypes.maybePC(fmd.getValue())) throw new MetaDataException(_loc.get("bad-meta-anno", fmd, "OneToOne")); // don't specifically exclude relation from DFG b/c that will prevent // us from even reading the fk when reading from the primary table, // which is not what most users will want if (anno.fetch() == FetchType.EAGER) fmd.setInDefaultFetchGroup(true); if (!anno.optional()) fmd.setNullValue(FieldMetaData.NULL_EXCEPTION); if (isMappingOverrideMode() && !StringUtil.isEmpty(anno.mappedBy())) fmd.setMappedBy(anno.mappedBy()); if (anno.targetEntity() != void.class) fmd.setTypeOverride(anno.targetEntity()); setCascades(fmd, anno.cascade()); setOrphanRemoval(fmd, anno.orphanRemoval()); fmd.setAssociationType(FieldMetaData.ONE_TO_ONE); }