Java 冬眠不';我不能再工作了。。。为什么?
我用hibernate做了一些简单的事情,因为我必须为一个项目学习它。我创建了一个简单的示例:Java 冬眠不';我不能再工作了。。。为什么?,java,hibernate,netbeans,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.getS
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()
就像它不能读取fooo属性一样。我检查了我是否更改了源。。。但事实并非如此。一切都和以前一样,没有例外。newBean实例不为null,foooo位于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>
}/p>< p>您将永远看不到插入在DB中的字符串的值,您将总是将它们视为问号(?)有嗅探器会显示它们的内容,但是在标准的Hibernate中,您将看不到任何值。以便其他人读代码更容易,您能考虑遵循一些编码约定吗?例如,您的类NewBean可以以大写字母开头:-)是的,对不起,这只是一个快速而肮脏的测试。。。?而不是你的绳子?请把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;