Hibernate不能插入数据但可以查找数据(异灵事件!)

发这种没有技术含量的问题,也是出于无奈。自己倒腾了1天多了还是没有结果。

希望各位大人海涵。

问题是这样的

我使用的是 MyEclipse 6.5GA

1·建立一个普通的Java项目

2·加入Hibernate支持(MyEclipse->Porject Capabilities)

(1) 选择Hibernate3.2
(2) 创建SessionFactory

3·对数据库中的表建立反向工程

(1) 生成*.hbm.xml文件
(2) 生成Pojo类
(3) 生成BasicDAO
(4)id增长类型选择native(mySQl中已经配置了自增长)

4·创建Main函数

[code="java"]
package hibernate;

public class Main {

/**
 * @param args
 */
public static void main(String[] args) {
    NewTableDAO dao = new NewTableDAO();
    NewTable test = new NewTable();
    test.setName("Help");
    dao.save(test);
    System.out.println("Finished");
}

}

[/code]

运行结果:

Hibernate: insert into test.new table (name) values (?)
Finished

但是数据库中没有插入任何数据!

不过要是运行自动生成的Dao中的任何查找功能都是没有问题的。

自动生成的Dao如下(部分):
[code="java"]
public class NewTableDAO extends BaseHibernateDAO {
private static final Log log = LogFactory.getLog(NewTableDAO.class);
// property constants
public static final String NAME = "name";

public void save(NewTable transientInstance) {
    log.debug("saving NewTable instance");
    try {
        getSession().save(transientInstance);
        log.debug("save successful");
    } catch (RuntimeException re) {
        log.error("save failed", re);
        throw re;
    }
}

[/code]

我在web项目中 及加入Hibernate、Spring(Hibernate不建立SessionFactory,使用Spring的)
在Juit中跑相同代码没有任何问题。

请问我这个问题出在哪里了 谢谢。

[code="java"]
public void save(NewTable transientInstance) {

log.debug("saving NewTable instance");

try {

Transaction tran = getSession().beginTransaction();
getSession().save(transientInstance);

tran.commit();
log.debug("save successful");

} catch (RuntimeException re) {

log.error("save failed", re);

throw re;

}

}

[/code]

lz改成这样试试,希望能对您有所帮助