无法更新tinyint字段

时间:2017-06-23 07:11:31

标签: java hibernate tinyint

您好我无法通过hibernate更新数据库中的msgFromUserFlag。在更新此值时,我都没有收到任何错误。

这是我在DAO层的代码。在数据库中,我的字段是TINYINT(1)类型,在持久化类中,它是boolean类型。

public void updateMsgFromUserFlag(CustomerOrder customerOrderEntity){
    try {

        //update(customerOrderEntity);
        final StringBuffer queryString = new StringBuffer("update CustomerOrder custOrder set custOrder.msgFromUserFlag = :param1 where custOrder.goldOrderNumber = :param2");
        final Query query = this.getEm().createQuery(queryString.toString());
        query.setParameter("param1",customerOrderEntity.isMsgFromUserFlag());
        query.setParameter("param2", customerOrderEntity.getGoldOrderNumber());
        int modification=query.executeUpdate();
    }
    catch(PersistenceException ex) {
        otLogger.debug("OrderDaoImpl.exception occurred "+ex);
        throw new TechnicalException(Constants.ERROR_HIBERNATE_EXCEPTION, ex);
    }
}

1 个答案:

答案 0 :(得分:0)

我认为你的财产就像是

private boolean msgFromUserFlag=false;

并且getter和setter是由eclipse本身生成的,它将像

一样生成它们
public boolean isMsgFromUserFlag() {
    return msgFromUserFlag;
}

public void setMsgFromUserFlag(boolean msgFromUserFlag) {
    this.msgFromUserFlag = msgFromUserFlag;
}

您可以尝试将getter更改为getMsgFromUserFlag(),因为错误的getter方法有时会在发布项目时导致Mapping Exception