您好我无法通过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);
}
}
答案 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
。