2016-03-01 168 views
0

我想使用Hibernate,但是當我執行一個查詢時,我收到了我的實體列表,其中所有的屬性都是NULL。問題是,當我直接使用jdbc時,我能夠從我的Db中檢索值。 我讀過關於NULL值的類似文章,但無法弄清楚在我的情況下出了什麼問題。 下面你看到: 1)我的實體:商鋪Hibernate返回空列表

public class Eshop implements java.io.Serializable { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

    public Eshop() {} 

    public Eshop(int eshopId, String code, String name, String lastModified) { 
    this.eshopId = eshopId; 
    this.code = code; 
    this.name = name; 
    this.lastModified = lastModified; 
} 

    public int eshopId; 

    public String code; 

    public String name; 

    public String lastModified; 

    public int getEshopId() { 
     return eshopId; 
    } 

    public void setEshopId(int eshopId) { 
     eshopId = eshopId; 
    } 

    public String getCode() { 
     return code; 
    } 

    public void setCode(String code) { 
     code = code; 
    } 


    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     name = name; 
    } 


    public String getLastModified() { 
     return lastModified; 
    } 

    public void setLastModified(String lastModified) { 
     lastModified = lastModified; 
    } 

2)Hibernate映射

<hibernate-mapping> 
    <class name="dataModel.Eshop" table="Eshop"> 
     <meta attribute="class-description"> 
     This class contains the Eshop details. 
     </meta> 
     <id name="eshopId" type="int" column="EshopId"> 
     <generator class="native"/> 
     </id> 
     <property name="code" column="Code" type="string"/> 
     <property name="name" column="Name" type="string"/> 
     <property name="lastModified" column="LastModified" type="string"/> 
    </class> 
</hibernate-mapping> 

這就是我如何運行查詢:

Configuration config = new Configuration().configure(); 
SessionFactory sessionFactory = config.buildSessionFactory(); 
Session session = sessionFactory.getCurrentSession(); 
session.beginTransaction(); 

Query hibernateQuery = session.createQuery("from Eshop"); 
List<Eshop> Eshops = hibernateQuery.list(); 

所以,當我運行一個查詢我收到了我的Db中的Eshop的確切數量,但是它們的所有屬性值均爲空! 一個想法?謝謝

+1

你引用一個局部變量範圍相同的局部變量的作用域。 –

+0

沒錯,謝謝你的評論 – panipsilos

回答

3

你所有的setter方法是錯誤的:

public void setEshopId(int eshopId) { 
    eshopId = eshopId; 
} 

這是一個空操作。它應該是

public void setEshopId(int eshopId) { 
    this.eshopId = eshopId; 
} 
+0

對!經過一整天的編碼,我的注意力不足:)謝謝! – panipsilos

0

嘗試添加hibernate.cfg.xml這樣的:

Configuration config = new Configuration().configure("hibernate.cfg.xml");