如何将所有关系从一个节点复制到另一个节点?

时间:2018-06-27 18:19:37

标签: java spring spring-boot spring-data spring-data-neo4j

背景

我有一个名为Invoke的抽象类

可以将其实例化为两个扩展调用的单独类:bigInvoke和smallInvoke。

我正在尝试制作一个具有Invoke PUT请求的API,该请求允许用户将其调用的类从大改变为小,反之亦然。

到目前为止我的代码

BigInvoke.java如下:

with open("./f") as f:
  lines = f.read().splitlines()
  for i,line in enumerate(lines):
    if line == 'A.' and i < (len(lines)-1):
      print lines[i+1]

而且,在我的invokeService.java中,我有:

@NodeEntity
public class BigInvoke extends Invoke {
    private String command;

    public BigInvoke(){
        this.invokeType = InvokeType.BigInvoke;
    }

    /**
     * @return the command
     */
    public String getCommand() {
        return command;
    }

    /**
     * @param command the command to set
     */
    public void setCommand(String command) {
        this.command = command;
    }
}

问题1

但这只是改变了变量 @Override public Invoke update(UUID uuid, Invoke invoke) { Invoke i = find(uuid); i.setInvokeType(invoke.getInvokeType()); invokeRepository.save(i); return invoke; } 的值,实际上并没有改变invokeType的类。

如何更改此类?


我的尝试#2的代码

invoke

#2问题

从某种意义上说,该实体现在具有我想要的所有属性,但是 @Override public Invoke update(UUID uuid, Invoke invoke) { Invoke i = find(uuid); UUID oldUUID = i.getUuid(); //make new one Invoke newInvoke = new Invoke(); newInvoke.setInvokeType(invoke.getInvokeType()); //Delete old one invokeRepository.deleteById(i.getUuid()); newInvoke.setUuid(oldUUID); invokeRepository.save(newInvoke); return newInvoke; } 删除了对我的Invoke的所有引用。因此,我的deleteById不再具有较早调用的关系。因此,它实际上不起作用。

问题

如何更改实体的类并保留所有关系和UUID?

编辑1个SmallInvoke代码

newInvoke

编辑2关于InvokeRepository的信息

InvokeRepository扩展了GenericRepository

GenericRepository扩展了Neo4jRepository

0 个答案:

没有答案