Модуль Spring mvc не обновляет значения должным образом.обновление как новая строка

#java #spring #spring-mvc

#java #весна #spring-mvc

Вопрос:

когда я обновляю значение в таблице, это значение добавляется как новая строка. не обновлена текущая строка.Я продолжаю просматривать код, но не вижу, в чем проблема. Может кто-нибудь показать мне, что изменить в приведенном ниже?

Вот соответствующие методы файла Webpagecontroller:

 @SuppressWarnings("deprecation")
@RequestMapping(value = "/updateMvPoles",method = RequestMethod.GET, produces = "application/json")
public @ResponseBody void updateMvPoles(@RequestParam("id") String id,@RequestParam("poleno") String poleno,
        @RequestParam("polename") String polename,@RequestParam("poletype") String poletype,@RequestParam("poleheight") String poleheight,
        @RequestParam("WorkingLoad") String workingload,@RequestParam("pstatus") String pstatus,@RequestParam("gpslatitude") String gpslatitude,@RequestParam("gpslongitude") String gpslongitude,
        @RequestParam("kv33conductorcct3") String kv33conductorcct3,@RequestParam("earthdownconductor") String earthdownconductor,@RequestParam("nooflvcct") String nooflvcct,
        @RequestParam("kv33conductorcct2") String kv33conductorcct2,@RequestParam("kv33conductorcct1") String kv33conductorcct1,@RequestParam("hvlvcombinerun") String hvlvcombinerun,
        @RequestParam("kv11conductorcct2") String kv11conductorcct2,@RequestParam("kv11conductorcct1") String kv11conductorcct1,@RequestParam("kv11conductorcct3") String kv11conductorcct3,
        @RequestParam("streetlight") String streetlight,@RequestParam("noof33kvcircuits") String noof33kvcircuits,@RequestParam("noof11kvcircuits") String noof11kvcircuits,
        @RequestParam("lvconductortype") String lvconductortype,@RequestParam("crossarm") String crossarm) 
{
    //provinceDao.updateProvince(province,id,status);
    try{
    
    System.out.println("hiiiiii66666");
    MmsAddmvpole obj = new MmsAddmvpole();
    obj = mvPoleDao.findById(Long.valueOf(id));
    obj.setId(new Long(id));
    obj.setPoleNo(poleno);
    obj.setPoleName(polename);
    obj.setPoleType(new BigDecimal(poletype));
    obj.setPoleHeight(new BigDecimal(poleheight));
    obj.setWorkingLoad(new BigDecimal(workingload));
    obj.setStatus(new BigDecimal(pstatus));
    obj.setGpsLatitude(new BigDecimal(gpslatitude));
    obj.setGpsLongitude(new BigDecimal(gpslongitude));
    obj.setKv33ConductorCct3(new BigDecimal(kv33conductorcct3));
    obj.setEarthConductor(new BigDecimal(earthdownconductor));
    obj.setNoOfLvCct(new BigDecimal(nooflvcct));
    obj.setKv33ConductorCct2(new BigDecimal(kv33conductorcct2));
    obj.setKv33ConductorCct1(new BigDecimal(kv33conductorcct1));
    obj.setHvLvCombineRun(new BigDecimal(hvlvcombinerun));
    obj.setKv11ConductorCct2(new BigDecimal(kv11conductorcct2));
    obj.setKv11ConductorCct1(new BigDecimal(kv11conductorcct1));
    obj.setKv11ConductorCct3(new BigDecimal(kv11conductorcct3));
    obj.setStreetLight(new BigDecimal(streetlight));
    obj.setNoOf33Kvcircuits(new BigDecimal(noof33kvcircuits));
    obj.setNoOf11Kvcircuits(new BigDecimal(noof11kvcircuits));
    obj.setLvConductorType(new BigDecimal(lvconductortype));
    obj.setCrossArm(new BigDecimal(crossarm));      
    
    mvPoleDao.update(obj);


    }catch(Exception e){
        
    }
  

}

Вот функция для кнопки обновления в editMVPoleNew.jsp

 function saveAll() {
    //alert('hiiiii');

    var len = arrayDataToSave.length
    
    for (var count = 0; count < len; count  ) {
        var pid = arrayDataToSave[count];
        var poleNo = document.getElementById("poleNo_"   pid).value;
        var poleName = document.getElementById("poleName_"   pid).value;
        var poleType = document.getElementById("poleType_"   pid).value;
        var poleHeight = document.getElementById("poleHeight_"   pid).value;
        var workingLoad = document.getElementById("workingLoad_"   pid).value;
        var pstatus = document.getElementById("pstatus_"   pid).value;
        var gps_latitude= document.getElementById("gps_latitude_"  pid).value;
        var gps_longitude = document.getElementById("gps_longitude_"   pid).value;
        var kV33Conductorcct_3= document.getElementById("kV33Conductorcct_3_"   pid).value
        var EarthDownconductor = document.getElementById("EarthDownconductor_"   pid).value
        var NoofLVcct=document.getElementById("NoofLVcct_"   pid).value
        var kV33Conductorcct_2=document.getElementById("kV33Conductorcct_2_"   pid).value
        var kV33Conductorcct_1=document.getElementById("kV33Conductorcct_1_"   pid).value
        var HVLVCombineRun=document.getElementById("HVLVCombineRun_"   pid).value
        var kV11Conductorcct_2=document.getElementById("kV11Conductorcct_2_"  pid).value
        var kV11Conductorcct_1=document.getElementById("kV11Conductorcct_1_"  pid). value                
        var kV11Conductorcct_3=document.getElementById("kV11Conductorcct_3_"  pid).value
        var StreetLight=document.getElementById("StreetLight_"  pid).value
        var Noof33kVCircuits=document.getElementById("Noof33kVCircuits_"  pid).value
        var Noof11kVCircuits=document.getElementById("Noof11kVCircuits_"   pid).value
        var LVConductortype=document.getElementById("LVConductortype_"  pid).value
        var  CrossArm=document.getElementById("CrossArm_"   pid).value
                
        
        var url = "/MMS/updateMvPoles?id="  pid  "amp;poleno="  poleNo  "amp;polename="  poleName  "amp;poletype="  poleType 
              "amp;poleheight="  poleHeight  "amp;WorkingLoad="  workingLoad  "amp;pstatus="  pstatus  "amp;gpslatitude="  gps_latitude  
            "amp;gpslongitude="  gps_longitude  "amp;kv33conductorcct3="  kV33Conductorcct_3  "amp;earthdownconductor="  EarthDownconductor 
            "amp;nooflvcct="  NoofLVcct  "amp;kv33conductorcct2="  kV33Conductorcct_2  "amp;kv33conductorcct1="  kV33Conductorcct_1  "amp;hvlvcombinerun="  HVLVCombineRun              
            "amp;kv11conductorcct2="  kV11Conductorcct_2  "amp;kv11conductorcct1="  kV11Conductorcct_1  "amp;kv11conductorcct3="  kV11Conductorcct_3  "amp;streetlight="  StreetLight               
            "amp;noof33kvcircuits="  Noof33kVCircuits  "amp;noof11kvcircuits="  Noof11kVCircuits  "amp;lvconductortype="  LVConductortype  "amp;crossarm="  CrossArm;

        
        
    
        // alert('hiiiii'  url);

        $.ajax({
            type : "GET",
            url : url,
            success : function(response) {
                //alert("Line updated succesfully...");
                console.log(response);
                window.location.reload();
                disable(pid);
            }
        });
    }
    alert("Lines updated succesfully... ");
  

}

Вот MmsAddmvPole.java

 @Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SeqGen")
@SequenceGenerator(name = "SeqGen", sequenceName = "POLEMV_SEQ", allocationSize = 1)
private long id;

private String area;

@Column(name="CROSS_ARM")
private BigDecimal crossArm;



@Column(name="EARTH_CONDUCTOR")
private BigDecimal earthConductor;


@Column(name="GPS_LATITUDE")
private BigDecimal gpsLatitude;



@Column(name="GPS_LONGITUDE")
private BigDecimal gpsLongitude;



@Column(name="HV_LV_COMBINE_RUN")
private BigDecimal hvLvCombineRun;

@Column(name="KV11_CONDUCTOR_CCT_2")
private BigDecimal kv11ConductorCct2;

@Column(name="KV11_CONDUCTOR_CCT_1")
private BigDecimal kv11ConductorCct1;



@Column(name="KV11_CONDUCTOR_CCT_3")
private BigDecimal kv11ConductorCct3;




@Column(name="KV33_CCT_1_PH_1")
private BigDecimal kv33Cct1Ph1;

@Column(name="KV33_CCT_1_PH_2")
private BigDecimal kv33Cct1Ph2;

@Column(name="KV33_CCT_1_PH_3")
private BigDecimal kv33Cct1Ph3;

@Column(name="KV33_CCT_2_PH_1")
private BigDecimal kv33Cct2Ph1;

@Column(name="KV33_CCT_2_PH_2")
private BigDecimal kv33Cct2Ph2;

@Column(name="KV33_CCT_2_PH_3")
private BigDecimal kv33Cct2Ph3;

@Column(name="KV33_CCT_3_PH_1")
private BigDecimal kv33Cct3Ph1;

@Column(name="KV33_CCT_3_PH_2")
private BigDecimal kv33Cct3Ph2;

@Column(name="KV33_CCT_3_PH_3")
private BigDecimal kv33Cct3Ph3;

@Column(name="KV33_CONDUCTOR_CCT_1")
private BigDecimal kv33ConductorCct1;

@Column(name="KV33_CONDUCTOR_CCT_2")
private BigDecimal kv33ConductorCct2;

@Column(name="KV33_CONDUCTOR_CCT_3")
private BigDecimal kv33ConductorCct3;

@Column(name="LINE_END")
private BigDecimal lineEnd;

@Column(name="LV_CONDUCTOR_TYPE")
private BigDecimal lvConductorType;

@Column(name="MV_SWITCH")
private BigDecimal mvSwitch;

@Column(name="NO_OF_11_KVCIRCUITS")
private BigDecimal noOf11Kvcircuits;

@Column(name="NO_OF_33_KVCIRCUITS")
private BigDecimal noOf33Kvcircuits;

@Column(name="NO_OF_LV_CCT")
private BigDecimal noOfLvCct;


@Column(name="NO_OF_CCT")
private BigDecimal noOfCct;


public BigDecimal getNoOfCct() {
    return noOfCct;
}

public void setNoOfCct(BigDecimal noOfCct) {
    this.noOfCct = noOfCct;
}

@Column(name="PIN_SHACKLE")
private BigDecimal pinShackle;

@Column(name="POLE_HEIGHT")
private BigDecimal poleHeight;

@Column(name="POLE_NAME")
private String poleName;

@Column(name="POLE_NO")
private String poleNo;



@Column(name="POLE_TYPE")
private BigDecimal poleType;

private BigDecimal status;

private BigDecimal stay;

@Column(name="STREET_LIGHT")
private BigDecimal streetLight;


@Column(name="TRANSFORMER_CAPACITY")
private BigDecimal transformerCapacity;

@Column(name="TRANSFORMER_TYPE")
private BigDecimal transformerType;

@Column(name="WORKING_LOAD")
private BigDecimal workingLoad;




private BigDecimal strut;

@Column(name="STRUT_HEIGHT")
private BigDecimal strutHeight;

public BigDecimal getStrutHeight() {
    return strutHeight;
}

public void setStrutHeight(BigDecimal strutHeight) {
    this.strutHeight = strutHeight;
}

@Column(name="STRUT_TYPE")
private BigDecimal strutType;

public BigDecimal getStrutType() {
    return strutType;
}

public void setStrutType(BigDecimal strutType) {
    this.strutType = strutType;
}

@Column(name="STRUT_WORKING_LOAD")
private BigDecimal strutWorkingLoad;


public BigDecimal getStrutWorkingLoad() {
    return strutWorkingLoad;
}

public void setStrutWorkingLoad(BigDecimal strutWorkingLoad) {
    this.strutWorkingLoad = strutWorkingLoad;
}


@Column(name="STAY_TYPE")
private BigDecimal stayType;


public BigDecimal getStayType() {
    return stayType;
}

public void setStayType(BigDecimal stayType) {
    this.stayType = stayType;
}

public MmsAddmvpole() {
}

public long getId() {
    return this.id;
}

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

public String getArea() {
    return this.area;
}

public void setArea(String area) {
    this.area = area;
}

public BigDecimal getCrossArm() {
    return this.crossArm;
}

public void setCrossArm(BigDecimal crossArm) {
    this.crossArm = crossArm;

}


















public BigDecimal getEarthConductor() {
    return this.earthConductor;
}

public void setEarthConductor(BigDecimal earthConductor) {
    this.earthConductor = earthConductor;
}



public BigDecimal getGpsLatitude() {
    return this.gpsLatitude;
}

public void setGpsLatitude(BigDecimal gpsLatitude) {
    this.gpsLatitude = gpsLatitude;
}

public BigDecimal getGpsLongitude() {
    return this.gpsLongitude;
}

public void setGpsLongitude(BigDecimal gpsLongitude) {
    this.gpsLongitude = gpsLongitude;
}


public BigDecimal getHvLvCombineRun() {
    return this.hvLvCombineRun;
}

public void setHvLvCombineRun(BigDecimal hvLvCombineRun) {
    this.hvLvCombineRun = hvLvCombineRun;
}

public BigDecimal getKv11ConductorCct1() {
    return this.kv11ConductorCct1;
}

public void setKv11ConductorCct1(BigDecimal kv11ConductorCct1) {
    this.kv11ConductorCct1 = kv11ConductorCct1;
}

public BigDecimal getKv11ConductorCct2() {
    return this.kv11ConductorCct2;
}

public void setKv11ConductorCct2(BigDecimal kv11ConductorCct2) {
    this.kv11ConductorCct2 = kv11ConductorCct2;
}

public BigDecimal getKv11ConductorCct3() {
    return this.kv11ConductorCct3;
}

public void setKv11ConductorCct3(BigDecimal kv11ConductorCct3) {
    this.kv11ConductorCct3 = kv11ConductorCct3;
}

public BigDecimal getKv33Cct1Ph1() {
    return this.kv33Cct1Ph1;
}

public void setKv33Cct1Ph1(BigDecimal kv33Cct1Ph1) {
    this.kv33Cct1Ph1 = kv33Cct1Ph1;
}

public BigDecimal getKv33Cct1Ph2() {
    return this.kv33Cct1Ph2;
}

public void setKv33Cct1Ph2(BigDecimal kv33Cct1Ph2) {
    this.kv33Cct1Ph2 = kv33Cct1Ph2;
}

public BigDecimal getKv33Cct1Ph3() {
    return this.kv33Cct1Ph3;
}

public void setKv33Cct1Ph3(BigDecimal kv33Cct1Ph3) {
    this.kv33Cct1Ph3 = kv33Cct1Ph3;
}

public BigDecimal getKv33Cct2Ph1() {
    return this.kv33Cct2Ph1;
}

public void setKv33Cct2Ph1(BigDecimal kv33Cct2Ph1) {
    this.kv33Cct2Ph1 = kv33Cct2Ph1;
}

public BigDecimal getKv33Cct2Ph2() {
    return this.kv33Cct2Ph2;
}

public void setKv33Cct2Ph2(BigDecimal kv33Cct2Ph2) {
    this.kv33Cct2Ph2 = kv33Cct2Ph2;
}

public BigDecimal getKv33Cct2Ph3() {
    return this.kv33Cct2Ph3;
}

public void setKv33Cct2Ph3(BigDecimal kv33Cct2Ph3) {
    this.kv33Cct2Ph3 = kv33Cct2Ph3;
}

public BigDecimal getKv33Cct3Ph1() {
    return this.kv33Cct3Ph1;
}

public void setKv33Cct3Ph1(BigDecimal kv33Cct3Ph1) {
    this.kv33Cct3Ph1 = kv33Cct3Ph1;
}

public BigDecimal getKv33Cct3Ph2() {
    return this.kv33Cct3Ph2;
}

public void setKv33Cct3Ph2(BigDecimal kv33Cct3Ph2) {
    this.kv33Cct3Ph2 = kv33Cct3Ph2;
}

public BigDecimal getKv33Cct3Ph3() {
    return this.kv33Cct3Ph3;
}

public void setKv33Cct3Ph3(BigDecimal kv33Cct3Ph3) {
    this.kv33Cct3Ph3 = kv33Cct3Ph3;
}

public BigDecimal getKv33ConductorCct1() {
    return this.kv33ConductorCct1;
}

public void setKv33ConductorCct1(BigDecimal kv33ConductorCct1) {
    this.kv33ConductorCct1 = kv33ConductorCct1;
}

public BigDecimal getKv33ConductorCct2() {
    return this.kv33ConductorCct2;
}

public void setKv33ConductorCct2(BigDecimal kv33ConductorCct2) {
    this.kv33ConductorCct2 = kv33ConductorCct2;
}

public BigDecimal getKv33ConductorCct3() {
    return this.kv33ConductorCct3;
}

public void setKv33ConductorCct3(BigDecimal kv33ConductorCct3) {
    this.kv33ConductorCct3 = kv33ConductorCct3;
}

public BigDecimal getLineEnd() {
    return this.lineEnd;
}

public void setLineEnd(BigDecimal lineEnd) {
    this.lineEnd = lineEnd;
}

public BigDecimal getLvConductorType() {
    return this.lvConductorType;
}

public void setLvConductorType(BigDecimal lvConductorType) {
    this.lvConductorType = lvConductorType;
}

public BigDecimal getMvSwitch() {
    return this.mvSwitch;
}

public void setMvSwitch(BigDecimal mvSwitch) {
    this.mvSwitch = mvSwitch;
}

public BigDecimal getNoOf11Kvcircuits() {
    return this.noOf11Kvcircuits;
}

public void setNoOf11Kvcircuits(BigDecimal noOf11Kvcircuits) {
    this.noOf11Kvcircuits = noOf11Kvcircuits;
}

public BigDecimal getNoOf33Kvcircuits() {
    return this.noOf33Kvcircuits;
}

public void setNoOf33Kvcircuits(BigDecimal noOf33Kvcircuits) {
    this.noOf33Kvcircuits = noOf33Kvcircuits;
}

public BigDecimal getNoOfLvCct() {
    return this.noOfLvCct;
}

public void setNoOfLvCct(BigDecimal noOfLvCct) {
    this.noOfLvCct = noOfLvCct;
}

public BigDecimal getPinShackle() {
    return this.pinShackle;
}

public void setPinShackle(BigDecimal pinShackle) {
    this.pinShackle = pinShackle;
}

public BigDecimal getPoleHeight() {
    return this.poleHeight;
}

public void setPoleHeight(BigDecimal poleHeight) {
    this.poleHeight = poleHeight;
}

public String getPoleName() {
    return this.poleName;
}

public void setPoleName(String poleName) {
    this.poleName = poleName;
}

public String getPoleNo() {
    return this.poleNo;
}

public void setPoleNo(String poleNo) {
    this.poleNo = poleNo;
}

public BigDecimal getPoleType() {
    return this.poleType;
}

public void setPoleType(BigDecimal poleType) {
    this.poleType = poleType;
}

public BigDecimal getStatus() {
    return this.status;
}

public void setStatus(BigDecimal status) {
    this.status = status;}


public BigDecimal getStay() {
    return this.stay;
}

public void setStay(BigDecimal stay) {
    this.stay = stay;
}

public BigDecimal getStreetLight() {
    return this.streetLight;
}

public void setStreetLight(BigDecimal streetLight) {
    this.streetLight = streetLight;
}

public BigDecimal getStrut() {
    return this.strut;
}

public void setStrut(BigDecimal strut) {
    this.strut = strut;
}

public BigDecimal getTransformerCapacity() {
    return this.transformerCapacity;
}

public void setTransformerCapacity(BigDecimal transformerCapacity) {
    this.transformerCapacity = transformerCapacity;
}

public BigDecimal getTransformerType() {
    return this.transformerType;
}

public void setTransformerType(BigDecimal transformerType) {
    this.transformerType = transformerType;
}

public BigDecimal getWorkingLoad() {
    return this.workingLoad;
}

public void setWorkingLoad(BigDecimal workingLoad) {
    this.workingLoad = workingLoad;
}
  

Комментарии:

1. удалите obj.setId(new Long(id)); это, поскольку оно уже должно быть заполнено в объекте. Используйте необязательный класс MmsAddmvpole obj =mvPoleDao.findById(Long.valueOf(id)).orElseGet(MmsAddmvpole::new);

2. Произошла ошибка. В нем говорится, что метод orElseGet(MmsAddmvpole::new) не определен для типа MmsAddmvpole

3. В вашем dao переопределите метод findById. Что-то вроде этого Optional<MmsAddmvpole> findById(Long id); . Это просто еще один способ сделать это. Для вашей проблемы с новой вставкой строки просто не устанавливайте идентификатор снова, и он должен работать

4. Я удаляю obj.setId(new Long (id));.Но все равно обновляю как добавление новой строки.