嗨,我无法通过hibernate更新数据库中的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);
}
}发布于 2017-06-23 16:26:30
我觉得你的财产是这样的
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。
https://stackoverflow.com/questions/44715242
复制相似问题