今天在做SSH的练习,页面传递过来id,当我用this.getHibernateTemplate().delete(user);删除数据时,总是抛出异常。
User类中有3个字段,分别是id、username、password,均为非空字段。所以在User.hbm.xml中not-null="true",结果在视图删除时,就会抛出not-null property references a null or transient value这样的异常。这是因为所有字段均为非空字段,而仅仅只给id赋值了,其余字段为空,所以抛出此异常。
解决办法,先按id查询出此对象,然后进行删除,不会出错了,不过这样效率不高,先进行了一次查询。
User user = (User) this.getHibernateTemplate().get(User.class, id);
this.getHibernateTemplate().delete(user);