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;
}
}