Hibernate不再起作用了......为什么?

时间:2010-01-19 16:38:21

标签: java hibernate netbeans

我正在用hibernate做简单的事情,因为我必须为项目学习它。我创建了这个简单的例子:

package hibtests;

import hibtests.beans.newBean;
import org.hibernate.Session;

/**
 *
 * @author dario
 */
public class Main {


    public void test(){
        Session session = NewHibernateUtil.getSessionFactory().getCurrentSession();

        session.beginTransaction();

        newBean nb = new newBean();
        nb.setNome("FooFoo");
        session.save(nb);

        session.getTransaction().commit();

    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        Main main = new Main();
        main.test();
    }

}

...它工作正常,将行放入数据库。然后我在另一堂课上工作了几个小时。我再次尝试这个例子,Hibernate提出了这个奇怪的问题:

Hibernate: 
    insert 
    into
        TEST
        (ID, NOME) 
    values
        (default, ?)
Hibernate: 

values
    identity_val_local()

喜欢它只是无法读取属于FooFoo的属性。我检查了我是否改变了源......但事实并非如此。一切都像以前一样,没有例外。 newBean实例不为null,FooFoo位于Nome字段中。为什么这样?

哦,我忘记了,我正在使用Netbeans 6.8和JavaDB。

根据要求,我的映射如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="hibtests.beans.newBean" table="APP.TEST">
        <id name="id" column="ID">
           <generator class="identity"/>
        </id>
        <property name="nome" column="NOME" type="string"/>
    </class>
</hibernate-mapping>

最后一分钟更新:结果是正在运行。无论如何我仍然可以看到查询?而不是字符串。为什么呢?


请求的newbean源代码如下:

public class newBean {

Long id;

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}
String nome;

}

1 个答案:

答案 0 :(得分:1)

您永远不会看到在DB中插入字符串的值,您将始终将它们视为问号(?)有嗅探器将显示其内容,但在标准休眠中您将看不到任何值。 / p>