我正在开发一个使用Java Spring
的{{1}}项目。
当狗被其拥有者收集时,它使用Spring data
从狗窝对象中删除狗对象。
请注意,可能存在与一个狗窝相关联的多个狗。还有很多狗窝。
我已将所有变量和方法声明为repositories
。
E.g:
Static
删除方法:
static Kennel kennel;
dogsWithReleasedStatus;
static List<Dog> dogsWithReleasedStatus = new ArrayList<Dog>();
static List<Dog> allDogsInKennel = new ArrayList<Dog>();
在main中调用remove方法:
(注意getAllKennelIds()只返回一个狗窝ID列表作为字符串):
public static void removeDogFromKennel(int dogInKennel, List<Dog> allDogsInKennel) {
//Loop through all dogs in the Kennel
for (dogInKennel = 0; dogInKennel < allDogsInKennel.size(); dogInKennel++) {
if (allDogsInKennel.get(dogInKennel).getStatus() == dogStatus.RELEASED) {
kennel.removeDog(allDogsInKennel.get(dogInKennel));
dogInKennel--;
}
}
}
我遇到的问题是,当调用 save 方法时,它会删除 ALL 狗窝中的狗,而不仅仅是那些发布的狗“状态。
我做错了什么?
答案 0 :(得分:3)
请注意,可能有多只狗与一只犬舍相关联。还有很多狗窝。
目前, nothing 与个人Kennel
相关联。所有变量都是静态的这一事实意味着它们与Kennel
类型相关联,而不是与该类型的特定实例相关联。
从根本上说,你需要弄清楚哪个信息是针对个别狗窝的(例如其中的狗) - 而那些字段不是静态的。
您应该阅读"Understanding Class Members"教程(或一本优秀的Java书籍),以获取有关静态字段和实例字段之间差异的更多信息。
我还会强烈建议你放弃Spring,数据库等,然后再继续尝试语言的基础知识。