DAO的删除方法public void delete(Script persistentInstance) {
log.debug("deleting Script instance");
try {
getSession().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
我的测试:
public class test { /**
* @param args
*/
public static void main(String[] args) {
try{
//Script s = new Script();
//s.setName("do");
//new ScriptDAO().save(s);
List list = new ScriptDAO().findByProperty("name", "go");
Script sc = (Script)list.get(0);
new ScriptDAO().delete(sc);
}catch(Exception e){
e.printStackTrace();
}
}}
控制台输出信息:log4j:WARN No appenders could be found for logger (com.jadecenter.hibernateDAO.ScriptDAO).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select script0_.ID as ID0_, script0_.NAME as NAME0_, script0_.DESCRIPTION as DESCRIPT3_0_, script0_.TIMES as TIMES0_, script0_.CREATETIME as CREATETIME0_, script0_.CONTENT as CONTENT0_, script0_.DSKENVIRONMENT as DSKENVIR7_0_, script0_.RESOLUTION as RESOLUTION0_ from SYSTEM.SCRIPT script0_ where script0_.NAME=?没打印出删除语句,然后我debug了一下,则出现:
source not found
找不到commons-logging-1.0.4.jar
明明有的,我把它加进去后,又出现不包含:Log4JLogger.class
log.debug("deleting Script instance");
try {
getSession().delete(persistentInstance);
log.debug("delete successful");
} catch (RuntimeException re) {
log.error("delete failed", re);
throw re;
}
}
我的测试:
public class test { /**
* @param args
*/
public static void main(String[] args) {
try{
//Script s = new Script();
//s.setName("do");
//new ScriptDAO().save(s);
List list = new ScriptDAO().findByProperty("name", "go");
Script sc = (Script)list.get(0);
new ScriptDAO().delete(sc);
}catch(Exception e){
e.printStackTrace();
}
}}
控制台输出信息:log4j:WARN No appenders could be found for logger (com.jadecenter.hibernateDAO.ScriptDAO).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select script0_.ID as ID0_, script0_.NAME as NAME0_, script0_.DESCRIPTION as DESCRIPT3_0_, script0_.TIMES as TIMES0_, script0_.CREATETIME as CREATETIME0_, script0_.CONTENT as CONTENT0_, script0_.DSKENVIRONMENT as DSKENVIR7_0_, script0_.RESOLUTION as RESOLUTION0_ from SYSTEM.SCRIPT script0_ where script0_.NAME=?没打印出删除语句,然后我debug了一下,则出现:
source not found
找不到commons-logging-1.0.4.jar
明明有的,我把它加进去后,又出现不包含:Log4JLogger.class
是error还是info,第二:web.xml中 下面的listener是否正确配置
<!-- Listener log4jConfigLocation -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
楼主new了两次ScriptDao, 必须保证两个DAo用的是同一个hibernate session。实在不行的话,试试用HQL: “delete Script s where s.name=:name"
然后 query.executeUpdate()
现在是根本没有打印delete的语句,加上事务是提交到数据库把
另外是你看看sc到底是否获取到?
再次不知道你开启事务没?其他添加,更新操作都能成功吗?
如果不成功,把事物加上