@Override public boolean visitToOne(ToOneProperty property) { if (!property.getRelationship().isSourceIndependentFromTargetChange()) { writerFactory.getOrCreateWriter(property); } return true; }
@Override public boolean visitToOne(ToOneProperty property) { if (property .getRelationship() .isSourceIndependentFromTargetChange()) { property.invalidate(object); } return true; }
public TargetPropertyWriter getOrCreateWriter(ToOneProperty property) { if (!entity.equals(property.getRelationship().getSourceEntity())) { throw new LmRuntimeException("Property belongs to a different entity: " + property.getName()); } List<DbRelationship> dbRelationships = property.getRelationship().getDbRelationships(); if (dbRelationships.size() > 1) { // TODO: support for flattened to-one relationships LOGGER.info("TODO: not mapping db: path for a flattened relationship: " + property.getName()); return NULL_WRITER; } DbRelationship dbRelationship = dbRelationships.get(0); List<DbJoin> joins = dbRelationship.getJoins(); if (joins.size() > 1) { // TODO: support for multi-key to-one relationships LOGGER.info("TODO: not mapping db: path for a multi-key relationship: " + property.getName()); return NULL_WRITER; } return getOrCreateWriter( property.getName(), ASTDbPath.DB_PREFIX + joins.get(0).getSourceName(), () -> new TargetToOnePropertyWriter(property) ); }
public boolean visitToOne(ToOneProperty property) { ObjRelationship rel = property.getRelationship(); DbRelationship dbRel = rel.getDbRelationships().get(0); for (DbJoin join : dbRel.getJoins()) { DbAttribute src = join.getSource(); if (src.isForeignKey() && visited.add(src.getName())) { entityResult.addDbField(src.getName(), prefix + index[0]++); } } return true; } };
public boolean visitToOne(ToOneProperty property) { ObjRelationship rel = property.getRelationship(); DbRelationship dbRel = rel.getDbRelationships().get(0); for (DbJoin join : dbRel.getJoins()) { DbAttribute src = join.getSource(); if (src.isForeignKey() && visited.add(src.getName())) { result.addDbField("fetch." + prefix + "." + src.getName(), prefix + "." + src.getName()); } } return true; } };
public boolean visitToOne(ToOneProperty property) { DbRelationship dbRel = property.getRelationship().getDbRelationships().get(0); List<DbJoin> joins = dbRel.getJoins(); for (DbJoin join : joins) { if(!join.getSource().isPrimaryKey()) { result.addDbField(join.getSource().getName(), join.getSource().getName()); } } return true; } };
public boolean visitToOne(ToOneProperty property) { ObjRelationship rel = property.getRelationship();
public boolean visitToOne(ToOneProperty property) { ObjRelationship relationship = property.getRelationship(); if (relationship.isToPK()) {