2010-01-19 85 views
0

我在做hibernate的簡單事情,因爲我必須爲項目學習它。我創建了這個簡單的例子: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源代碼如下:

+0

你可以發佈你的映射? – KLE 2010-01-19 16:45:25

+0

爲了讓其他人更容易閱讀代碼,你可以考慮遵循一些編碼習慣嗎?例如,您的班級NewBean可能會以大寫字母開頭:-) – KLE 2010-01-19 16:47:58

+0

是的抱歉,這只是一個快速而骯髒的測試... – gotch4 2010-01-19 17:09:00

回答

1

你永遠不會看到字符串的值被插入在DB

公共類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

正是......這些是參數標記......這就是預期的行爲。 – jsight 2010-01-20 18:42:41

相關問題