Я делал простые вещи в спящем режиме, так как мне нужно изучить его для проекта. Я создал этот простой пример: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 не является нулевым, а 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 исходный код следующим образом:
общественного класса 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;
}
Не могли бы вы разместить ваше картографирование? – KLE
Чтобы другие люди легче читали код, не могли бы вы рассмотреть несколько условных условных обозначений? Например, ваш класс NewBean может начинаться с большой буквы :-) – KLE
да извините, это был просто быстрый и грязный тест ... – gotch4