Hibernate больше не работает ... почему? - PullRequest
0 голосов
/ 19 января 2010

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

}

1 Ответ

1 голос
/ 20 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...