0

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

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

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

1 回答 1

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

于 2017-06-23T08:26:29.700 回答