背景
我有一个名为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