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

解决方案 »

  1.   

    Log4j和commons-logging是不同的东西,虽然它们都用于日志
      

  2.   

    第一;log4j.properties这个文件的内容是否配置正确了,比如:是将日志输出到控制台还是文件,出力信息的种类是什么
    是error还是info,第二:web.xml中 下面的listener是否正确配置
    <!-- Listener log4jConfigLocation -->
       <listener>
         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
       </listener>
      

  3.   

    我其他的dao的删除都可以,就这个不行
      

  4.   


    楼主new了两次ScriptDao, 必须保证两个DAo用的是同一个hibernate session。实在不行的话,试试用HQL: “delete Script s where s.name=:name"
    然后 query.executeUpdate()
      

  5.   


    现在是根本没有打印delete的语句,加上事务是提交到数据库把
      

  6.   

    debug的时候貌似到不了人家的源码中,
    另外是你看看sc到底是否获取到?
    再次不知道你开启事务没?其他添加,更新操作都能成功吗?
    如果不成功,把事物加上
      

  7.   

    不加事务这条语句不执行,不执行 showsql 有用?
      

  8.   

    现在是delete的sql语句都没打印出来哦