2010-01-19 2 views
0

Я делал простые вещи в спящем режиме, так как мне нужно изучить его для проекта. Я создал этот простой пример: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; 

}

+0

Не могли бы вы разместить ваше картографирование? – KLE

+0

Чтобы другие люди легче читали код, не могли бы вы рассмотреть несколько условных условных обозначений? Например, ваш класс NewBean может начинаться с большой буквы :-) – KLE

+0

да извините, это был просто быстрый и грязный тест ... – gotch4

ответ

1

Вы никогда не увидите значение строк вставляется в БД, вы всегда будут видеть их как вопросительные знаки (?), есть снифферы, которые покажут их содержимое, но в стандартном спящем режиме вы не увидите никаких значений.

+0

Точно ...? S - это маркеры параметров ... это ожидаемое поведение. – jsight