Neo4J-Spring Boot - PullRequest
       4

Neo4J-Spring Boot

0 голосов
/ 03 декабря 2018

Контекст: Java-приложение с пружинной загрузкой и neo4j для бэкенда и угловым 5 для внешнего интерфейса.

Проблема, которую нужно решить: Когда я сохраняю объект US, который может иметь 3 разных типа отношений сдругие случаи США стирают отношения его ребенка. Пример:

  • US1
  • US2
  • US3

US2 синхронно с US3 .Если я поставлю US1 перед US3 , соотношение между US2 и US3 исчезнет.

Вопрос в том,есть конфигурация или способ предотвратить это?

Отредактировано:

@Component
@NodeEntity(label = UniteStratigraphique.LABEL)
public class UniteStratigraphique extends NeoModel {

private static final long serialVersionUID = 1L;
public static final String NAME = "us";
public static final String LABEL = "US";
public static final String IS_SYNCHRONOUS = "EST_SYNCHRONE";
public static final String IS_PREVIOUS = "EST_ANTERIEURE";
public static final String IS_LOCATED_ON = "EST_SITUEE_SUR";
public static final String HAS_A_PHASE = "EST_ASSOCIE_A";
private static final String IS_COLLECTED_ON = "EST_RECUEILLI_SUR";


@NotNull
@Index(unique=true) 
@Pattern(regexp="^.*\\.[0-9]{1,4}$")
private String identification;

@Length(min = 0, max = 500)
private String description;

@Length(min = 0, max = 500)
private String comment;//commentaire

@Relationship(type = HAS_A_PHASE,  direction = Relationship.OUTGOING )
private Phase phase;

@NotNull
@Relationship(type = IS_LOCATED_ON, direction = Relationship.OUTGOING)
private Chantier chantier;

@DateTimeFormat(pattern = "dd/MM/yyyy", iso = ISO.DATE)
private Date beginningDate;

@DateTimeFormat(pattern = "dd/MM/yyyy", iso = ISO.DATE)
private Date endDate;

private String type;

@Length(min = 0, max = 4)
private String longueur;

@Length(min = 0, max = 4)
private String largeur;

private String coordonneeLambertX;

private String coordonneeLambertY;


@JsonSerialize(using = UsListRelationSerializer.class)
@Relationship(type = IS_SYNCHRONOUS, direction = Relationship.UNDIRECTED)
private Set<UniteStratigraphique> usSynchrones;


@JsonSerialize(using = UsListRelationSerializer.class)
@Relationship(type = IS_PREVIOUS, direction = Relationship.INCOMING)
private Set<UniteStratigraphique> usAnterieures;


@JsonSerialize(using = UsListRelationSerializer.class)
@Relationship(type = IS_PREVIOUS, direction = Relationship.OUTGOING)
private Set<UniteStratigraphique> usPosterieures;


@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
@Relationship(type = ElementRecueilli.IS_COLLECTED_ON, direction = Relationship.INCOMING)
private Set<ElementRecueilli> ers;

public Phase getPhase() {
    return phase;
}

public void setPhase(Phase phase) {
    this.phase = phase;
}


public String getIdentification() {
    return identification;
}

public void setIdentification(String identification) {
    this.identification = identification;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getComment() {
    return comment;
}

public void setComment(String comment) {
    this.comment = comment;
}

public Chantier getChantier() {
    return chantier;
}

public void setChantier(Chantier chantier) {
    this.chantier = chantier;
}

public Date getBeginningDate() {
    return beginningDate;
}

public void setBeginningDate(Date beginningDate) {
    this.beginningDate = beginningDate;
}

public Date getEndDate() {
    return endDate;
}

public void setEndDate(Date endDate) {
    this.endDate = endDate;
}

public Set<UniteStratigraphique> getUsSynchrones() {
    if (usSynchrones == null)
        usSynchrones = new HashSet<>();
    return usSynchrones;
}

public void setUsSynchrones(Set<UniteStratigraphique> usSynchrones) {
    this.usSynchrones = usSynchrones;
}

public Set<UniteStratigraphique> getUsAnterieures() {
    if (usAnterieures == null)
        usAnterieures = new HashSet<>();
    return usAnterieures;
}

public void setUsAnterieures(Set<UniteStratigraphique> usAnterieures) {
    this.usAnterieures = usAnterieures;
}

public Set<UniteStratigraphique> getUsPosterieures() {
    if (usPosterieures == null)
        usPosterieures = new HashSet<>();
    return usPosterieures;
}

public void setUsPosterieures(Set<UniteStratigraphique> usPosterieures) {
    this.usPosterieures = usPosterieures;
}

public void setErs(Set<ElementRecueilli> ers) {
    this.ers = ers;
}

public Set<ElementRecueilli> getErs() {
    if (ers == null)
        ers = new HashSet<>();
    return ers;
}

@Override
public String getLabel() {
    // TODO Auto-generated method stub
    return UniteStratigraphique.LABEL;
}

@Override
public String getName() {
    // TODO Auto-generated method stub
    return NAME;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}
//////other getter and setter
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...