Java ebean模型更新不是永久性的

Java ebean模型更新不是永久性的,java,jpa,arraylist,ebean,Java,Jpa,Arraylist,Ebean,你好!我在更新实体时遇到问题。当我点击“更新”按钮时,更改被保存。但是,当我转到另一个页面时,最近更改(或添加)的项目在那里,而旧项目(应该更改或删除)也在那里。尤其是相关标签(名称和注释正在更新)。为什么它不是持久的或永久的 这里是更新发生的地方 Form<Tag> filledForm = tagForm.fill(Tag.find.byId(id)).bindFromRequest(); Tag editedTag = RelatedTag.findTa

你好!我在更新实体时遇到问题。当我点击“更新”按钮时,更改被保存。但是,当我转到另一个页面时,最近更改(或添加)的项目在那里,而旧项目(应该更改或删除)也在那里。尤其是相关标签
名称
注释
正在更新)。为什么它不是持久的或永久的

这里是更新发生的地方

Form<Tag> filledForm = tagForm.fill(Tag.find.byId(id)).bindFromRequest();
            Tag editedTag = RelatedTag.findTag(id);
            if(filledForm.hasErrors()) {
                return badRequest(editTagForm.render(user, editedTag, filledForm, tags));
            }
            else {

                List<RelatedTag> relatedTagsAlloc = new ArrayList<RelatedTag>();

                java.util.Map<String, String[]> map = request().body().asFormUrlEncoded();
                String[] relatedTags = map.get("relatedTags.tag.name");
                String[] relationship = map.get("relatedTags.relationship");
                String[] relatedNotes = map.get("relatedTags.relatedNotes");

                if (relatedTags != null) {
                    for (int i = 0; i < relatedTags.length; i++) {
                        if (RelatedTag.exists(relatedTags[i].trim().toLowerCase().replaceAll("\\s+", " "))) {
                            relatedTagsAlloc.add(RelatedTag.findByLabel(
                                    relatedTags[i].trim().toLowerCase().replaceAll("\\s+", " "), relationship[i], relatedNotes[i].trim()));
                        } else {
                            Tag unknown = new Tag(relatedTags[i], "");
                            Tag.create(unknown);
                            relatedTagsAlloc.add(RelatedTag.findByLabel(
                                    relatedTags[i].trim().toLowerCase().replaceAll("\\s+", " "), relationship[i], relatedNotes[i].trim()));
                        }
                    }
                    editedTag.getRelatedTags().clear();

                }
                editedTag.setName(filledForm.get().getName().toLowerCase().replaceAll("\\s+", " "));
                editedTag.setRelatedTags(relatedTagsAlloc);
                editedTag.update();
                Application.log(user, editedTag, action);
                writeToFile(editedTag);
                return ok(summary.render(user, editedTag));
            }
相关标签
型号

package models;

import java.sql.Timestamp;
import java.util.*;

import javax.persistence.*;
import javax.validation.*;

import play.data.Form;
import play.data.validation.Constraints.*;
import play.db.ebean.*;
import play.db.ebean.Model.Finder;
import scala.Int;

@Entity
public class RelatedTag extends Model {

    @Id
    public int rtID;

    private int id; //same as Tag's id

    private String relationship;

    private String relatedNotes;

    @Version
    public Timestamp lastUpdate;

    public RelatedTag() {}

    public RelatedTag(int id, String relationship, String relatedNotes) {
        this.id = id;
        this.relationship = relationship;
        this.relatedNotes = relatedNotes;
    }

    public void setId(int id){
        this.id = id;
    }

    public void setRelationship(String relationship){
        this.relationship = relationship;
    }

    public void setRelatedNotes(String relatedNotes) {
        this.relatedNotes = relatedNotes;
    }

    public int getId(){
        return id;
    }


    public String getRelationship(){
        return relationship;
    }

    public String getRelatedNotes() {
        return relatedNotes;
    }

    public static void create(List<RelatedTag> rt){
        ((Model) rt).save();
    }

    public static boolean exists(String tagRelated) {
        for(Tag tag : Tag.find.all()) {
            if(tagRelated.equals(tag.getName()))
                return true;
        }
        return false;
    }

    public static RelatedTag findByLabel(String tagRelated, String relation, String relatedNotes) {
        RelatedTag relatedTag = null;
        for(Tag tag : Tag.find.all()) {
            if(tagRelated.equals(tag.getName())) {
                relatedTag = new RelatedTag(tag.getId(), relation, relatedNotes);
            }
        }
        return relatedTag;
    }

    public static Tag findTag(int id) {
        for(Tag tag : Tag.find.all()) {
            if(id == tag.getId()) 
                return tag;
        }
        return null;
    }

}
封装模型;
导入java.sql.Timestamp;
导入java.util.*;
导入javax.persistence.*;
导入javax.validation.*;
导入play.data.Form;
导入play.data.validation.Constraints.*;
导入play.db.ebean.*;
导入play.db.ebean.Model.Finder;
导入scala.Int;
@实体
公共类RelatedTag扩展模型{
@身份证
公共int rtID;
private int id;//与标记的id相同
私有字符串关系;
私有字符串相关注释;
@版本
公共时间戳lastUpdate;
public RelatedTag(){}
public-RelatedTag(int-id、String-relationship、String-relatedNotes){
this.id=id;
这个关系=关系;
this.relatedNotes=relatedNotes;
}
公共无效集合id(内部id){
this.id=id;
}
公共关系(字符串关系){
这个关系=关系;
}
公共void setRelatedNotes(字符串relatedNotes){
this.relatedNotes=relatedNotes;
}
公共int getId(){
返回id;
}
公共字符串getRelationship(){
回报关系;
}
公共字符串getRelatedNotes(){
归还相关票据;
}
公共静态无效创建(列表rt){
((Model)rt.save();
}
存在公共静态布尔值(与字符串标记相关){
for(标记:Tag.find.all()){
if(tagRelated.equals(tag.getName()))
返回true;
}
返回false;
}
public static RelatedTag findByLabel(String-tagRelated、String-relation、String-relatedNotes){
RelatedTag RelatedTag=null;
for(标记:Tag.find.all()){
if(tagRelated.equals(tag.getName())){
relatedTag=新的relatedTag(tag.getId(),relation,relatedNotes);
}
}
返回相关标签;
}
公共静态标记findTag(int-id){
for(标记:Tag.find.all()){
if(id==tag.getId())
返回标签;
}
返回null;
}
}

我做错了什么?请帮我修一下。多谢各位

不要每隔两小时重复同样的问题
package models;

import java.sql.Timestamp;
import java.util.*;

import javax.persistence.*;
import javax.validation.*;

import play.data.Form;
import play.data.validation.Constraints.*;
import play.db.ebean.*;
import play.db.ebean.Model.Finder;
import scala.Int;

@Entity
public class RelatedTag extends Model {

    @Id
    public int rtID;

    private int id; //same as Tag's id

    private String relationship;

    private String relatedNotes;

    @Version
    public Timestamp lastUpdate;

    public RelatedTag() {}

    public RelatedTag(int id, String relationship, String relatedNotes) {
        this.id = id;
        this.relationship = relationship;
        this.relatedNotes = relatedNotes;
    }

    public void setId(int id){
        this.id = id;
    }

    public void setRelationship(String relationship){
        this.relationship = relationship;
    }

    public void setRelatedNotes(String relatedNotes) {
        this.relatedNotes = relatedNotes;
    }

    public int getId(){
        return id;
    }


    public String getRelationship(){
        return relationship;
    }

    public String getRelatedNotes() {
        return relatedNotes;
    }

    public static void create(List<RelatedTag> rt){
        ((Model) rt).save();
    }

    public static boolean exists(String tagRelated) {
        for(Tag tag : Tag.find.all()) {
            if(tagRelated.equals(tag.getName()))
                return true;
        }
        return false;
    }

    public static RelatedTag findByLabel(String tagRelated, String relation, String relatedNotes) {
        RelatedTag relatedTag = null;
        for(Tag tag : Tag.find.all()) {
            if(tagRelated.equals(tag.getName())) {
                relatedTag = new RelatedTag(tag.getId(), relation, relatedNotes);
            }
        }
        return relatedTag;
    }

    public static Tag findTag(int id) {
        for(Tag tag : Tag.find.all()) {
            if(id == tag.getId()) 
                return tag;
        }
        return null;
    }

}