Я делал простые вещи с 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 {
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;
}