Update()方法在带有h2数据库的Play Framework中不起作用

问题描述 投票:1回答:1

我正在尝试更新我在Play Framework中创建的公司类别的列表。直到我进入company.update()为止,所有操作都不会进行,因为company.update()不会按原样保存到数据库。

这是我的公司课程:

package models;

import io.ebean.Finder;
import io.ebean.Model;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Company extends Model {
    @Id
    public Integer id;
    public String code;
    public String name;
    public String adress;
    public String fiscalCode;
    public String bankAccount;

    public static Finder<Integer, Company> find = new Finder<>(Company.class);


    public String getFiscalCode() {
        return fiscalCode;
    }

    public void setFiscalCode(String fiscalCode) {
        this.fiscalCode = fiscalCode;
    }

    public String getBankAccount() {
        return bankAccount;
    }

    public void setBankAccount(String bankAccount) {
        this.bankAccount = bankAccount;
    }

    public Integer getId() {
        return id;
    }

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

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAdress() {
        return adress;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }
}

这是我的更新和编辑方法:

public Result editCompany(Integer id){

        Company company = Company.find.byId(id);
        if(company == null)
        {
            return notFound("Company not found");
        }
        Form<Company> companyForm = formFactory.form(Company.class).fill(company);
        return ok(editCompany.render(companyForm));
    }

    public Result updateCompany(){
        Form<Company> companyForm = formFactory.form(Company.class).bindFromRequest();
        if(companyForm.hasErrors())
        {
            flash("danger","Please Correct the Form Below");
            return badRequest(editCompany.render(companyForm));
        }
        Company newcompany = companyForm.get();
        Company company = Company.find.byId(newcompany.id);
        if (company == null) {
            flash("danger", "Book not found");
            redirect(routes.CompanyController.indexCompanies());
        }
        company.code = newcompany.code;
        company.name = newcompany.name;
        company.adress = newcompany.adress;
        company.fiscalCode = newcompany.fiscalCode;
        company.bankAccount = newcompany.bankAccount;
        company.update();
        flash("success","Company Details Updated Successfully");
        return redirect(routes.CompanyController.indexCompanies());
    }

新公司实体具有更新的值,但它们不会保存在数据库中。我通过打印到控制台company.name进行检查。

希望您能帮助我。谢谢!

java playframework h2
1个回答
0
投票

我似乎已经知道了。使用getter和setter并进行重新编译后,问题消失了。因此,

company.code = newcompany.code;
company.name = newcompany.name;
company.adress = newcompany.adress;
company.fiscalCode = newcompany.fiscalCode;
company.bankAccount = newcompany.bankAccount;

成为

company.setCode(newcompany.getCode());
company.setName(newcompany.getName());
company.setAdress(newcompany.getAdress());
company.setFiscalCode(newcompany.getFiscalCode());
company.setBankAccount(newcompany.getBankAccount());
© www.soinside.com 2019 - 2024. All rights reserved.