我用hibernate+Struts2做了个网上书店,在修改图书信息时出现下列错误,求高手指点...
javax.servlet.ServletException: org.hibernate.PropertyValueException: not-null property references a null or transient value: org.model.Bookinfo.date
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
有时出现的是下面这个:
javax.servlet.ServletException: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:
dao代码如下:
package org.dao.impl;import java.util.Date;
import java.util.List;import org.dao.IBookDao;
import org.model.Bookinfo;
import org.web.paging.PageInfo;public class BookDaoImpl extends BaseDaoImpl implements IBookDao{
public List<Bookinfo> getBookListByName(String name, PageInfo pageInfo){
String hql ="";
if("".equals(name) || null==name){
hql = "from Bookinfo" ;
}else{
hql = "from Bookinfo where bookName like '%"+name+"%'";
}
return this.getPage(hql, pageInfo);
}
public Bookinfo getLastBook(){
List<Bookinfo> list = super.search("from Bookinfo where remaining>0 order by id desc");
if(list!=null&&list.size()>0){
return list.get(0);
}
return null;
}
public Bookinfo getByID(Integer bookid){
return (Bookinfo)super.getObject(Bookinfo.class, bookid);
}
public void save(Bookinfo book){
//新增记录时id为空
if (null==book.getId()){
Bookinfo lastBook = getLastBook();
//bookID加1
book.setId(lastBook.getId()+1);
}
if (null==book.getDate()){
book.setDate(new Date(System.currentTimeMillis()));
}
super.saveObject(book);
}
public void update(Bookinfo book){
super.renew(book);
}
public void delete(Integer bookid){
super.delete(Bookinfo.class, bookid);
}
}
javax.servlet.ServletException: org.hibernate.PropertyValueException: not-null property references a null or transient value: org.model.Bookinfo.date
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
有时出现的是下面这个:
javax.servlet.ServletException: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:
dao代码如下:
package org.dao.impl;import java.util.Date;
import java.util.List;import org.dao.IBookDao;
import org.model.Bookinfo;
import org.web.paging.PageInfo;public class BookDaoImpl extends BaseDaoImpl implements IBookDao{
public List<Bookinfo> getBookListByName(String name, PageInfo pageInfo){
String hql ="";
if("".equals(name) || null==name){
hql = "from Bookinfo" ;
}else{
hql = "from Bookinfo where bookName like '%"+name+"%'";
}
return this.getPage(hql, pageInfo);
}
public Bookinfo getLastBook(){
List<Bookinfo> list = super.search("from Bookinfo where remaining>0 order by id desc");
if(list!=null&&list.size()>0){
return list.get(0);
}
return null;
}
public Bookinfo getByID(Integer bookid){
return (Bookinfo)super.getObject(Bookinfo.class, bookid);
}
public void save(Bookinfo book){
//新增记录时id为空
if (null==book.getId()){
Bookinfo lastBook = getLastBook();
//bookID加1
book.setId(lastBook.getId()+1);
}
if (null==book.getDate()){
book.setDate(new Date(System.currentTimeMillis()));
}
super.saveObject(book);
}
public void update(Bookinfo book){
super.renew(book);
}
public void delete(Integer bookid){
super.delete(Bookinfo.class, bookid);
}
}
解决方案 »
- Link.getPrompt方法获取的值是null,求解
- 问一个hm.get()和it.next()的返回值问题 谢谢哈 急呀
- spring+hibernate小弟封装了一个DAO,感觉不好用,有没有好点的封装
- 为什么jasper做excel导出的时候每次gc都启动?而且有时候还会服务死掉!
- Hibernate复合主键问题
- 新手问题,关于xfire调用web service
- JSP网页播放器的问题
- 我用CONNECTOR打开SOCKET://......,怎么我的手机提示,不存在这个协议,这是怎么回事?索爱T618手机
- 做过支付网关或者支付平台的朋友请进来
- 请问在listener中调用service层的方法中遇到问题
- 关于jpql的join查询问题
- 更新出现错误
这个错误很明显啊,
不能为空的属性引用了一个null的值,也就是org.model.Bookinfo.date不能为空,你看下你那个*-Bookinfo.cfg.xml里面的date的配置喽..