Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠属性访问异常_Java_Hibernate_Jakarta Ee - Fatal编程技术网

Java 休眠属性访问异常

Java 休眠属性访问异常,java,hibernate,jakarta-ee,Java,Hibernate,Jakarta Ee,在我的数据库中,我有一个科目表,其中我将“余额”(“意大利语中的Saldo”)行设置为默认的空值。当我想输入帐户时,在我的方法中有一个字段,我可以在其中输入帐户的初始余额。当账单开始输入时,hibernate会告诉我以下错误: WFLYEJB0034:方法公共抽象int-ewl.proxima.EJB.ContoRemote.creaConto(java.lang.String,java.lang.String,double)的组件ContoEJB上的EJB调用失败:javax.EJB.EJBE

在我的数据库中,我有一个科目表,其中我将“余额”(“意大利语中的Saldo”)行设置为默认的空值。当我想输入帐户时,在我的方法中有一个字段,我可以在其中输入帐户的初始余额。当账单开始输入时,hibernate会告诉我以下错误:

WFLYEJB0034:方法公共抽象int-ewl.proxima.EJB.ContoRemote.creaConto(java.lang.String,java.lang.String,double)的组件ContoEJB上的EJB调用失败:javax.EJB.EJBException:javax.persistence.PersistenceException:org.hibernate.PropertyAccesseException:为属性[class ewl.proxima.model.Conti.saldo]分配了Null值ewl.proxima.model.Conti.saldo的基元类型设置程序的

这是我在Conto类中的方法setSaldo:

public Float getSaldo() {
    return this.saldo;
}

public void setSaldo(Float saldo) {
    this.saldo = saldo;
}
下面是我从ejb调用的方法creaConto:

@Override
public int creaConto(String CF, String iban, double saldoIniziale) {

ContoDAOpers pcd = new ContoDAOpers(em);
    ewl.proxima.model.Conto c = pcd.getContoByCf(CF);
    c.setDataCreazione(new Date());
    c.setIban(iban);
    c.setSaldo((float) saldoIniziale);
    if(pcd.insertConto(c)) return 1;
    return -1;
}
从ContoDAOpers插入到:

public boolean insertConto(Conto c)
{
    entityManager.merge(c);
    return true;
}
我所有的康托班:

@Entity
@Table(name = "conti")
@NamedQuery(name="Conto.findAll", query="SELECT c FROM Conti c")
public class Conto implements Serializable {
private static final long serialVersionUID = 1L;

@Id
private int id;

private String codice_fiscale;

@Temporal(TemporalType.DATE)
private Date data;

private String iban;

private Float saldo;

//bi-directional many-to-one association to Movimento
@OneToMany(mappedBy="contoBean", orphanRemoval=true)
private List<Movimento> movimentos;

public Conto() {
}

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

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

public String getCf() {
    return this.codice_fiscale;
}

public void setCf(String cf) {
    this.codice_fiscale = cf;
}

public Date getDataCreazione() {
    return this.data;
}

public void setDataCreazione(Date dataCreazione) {
    this.data = dataCreazione;
}

public String getIban() {
    return this.iban;
}

public void setIban(String iban) {
    this.iban = iban;
}

public Float getSaldo() {
    return this.saldo;
}

public void setSaldo(Float saldo) {
    this.saldo = saldo;
}

public List<Movimento> getMovimentos() {
    return this.movimentos;
}

public void setMovimentos(List<Movimento> movimentos) {
    this.movimentos = movimentos;
}

public Movimento addMovimento(Movimento movimento) {
    getMovimentos().add(movimento);
    movimento.setContoBean(this);

    return movimento;
}

public Movimento removeMovimento(Movimento movimento) {
    getMovimentos().remove(movimento);
    movimento.setContoBean(null);

    return movimento;
}

}

ContoDAOpers
Conto
的代码,以及对
creaConto
的调用将非常有用…@desperateCoder我更新了问题。提前谢谢我知道声音很蠢,但你真的确定没有空值吗
request.getParameter(“saldo”)
一个简单的打字错误就可能毁掉一切。。。
protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException 
    {
        String prov = request.getParameter("provenienza");
        if(prov.equals("insertConto"))
        {
            String cfDip = request.getParameter("cfDip");
            String iban = request.getParameter("iban");
            if(iban.replaceAll(" ", "").equals(""))
            {
                request.setAttribute("error", true);
                request.setAttribute("dipendenti", getContiVuoti());

getServletContext().getRequestDispatcher
("/insertConto.jsp").forward(request, response);
                return;
            }

            int i = 0;
            try
            {
                double saldo = 
Double.parseDouble(request.getParameter("saldo").
replaceAll(",", "."));
                i = contoEJB.creaConto(cfDip, iban, saldo);
            }
            catch(NumberFormatException e)
            {
                e.printStackTrace();
                i = -1;
            }

            if(i == -1 || i == -10)
                request.setAttribute("error", true);
            else
                request.setAttribute("success", true);

            request.setAttribute("dipendenti", getContiVuoti());

getServletContext().getRequestDispatcher
("/insertConto.jsp").forward(request, 
response);
            return;
        }