2014-09-25 66 views
0

我試圖在mysql數據庫槽中插入和選擇數據Hibernate和Insert對我來說工作正常,但選擇某種方式不映射正確的表名並返回沒有結果。休眠選擇錯誤的表名

獲取和插入代碼:

SessionFactory sessFact = HibernateUtil.getSessionFactory(); 
    Session session = sessFact.getCurrentSession(); 
    session.beginTransaction(); 

    session.save(obj); 
    session.getTransaction().commit(); 

    try { 
     Session mysession = HibernateUtil.getSessionFactory().getCurrentSession(); 
     mysession.beginTransaction(); 
     weatherDataObject resultObjectHib = (weatherDataObject) mysession.get(weatherDataObject.class, 26); 
     mysession.getTransaction().commit(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    sessFact.close(); 



<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping package="some.pack"> 
    <class name="weatherCoordinates" table="coordinates"> 
     <id name="dataBaseId" column="coordinates_id"> 
      <generator class="native" /> 
     </id> 
     <property name="lat" type="string" column="coordinates_lat" /> 
     <property name="lon" type="string" column="coordinates_lon" /> 




    </class> 
</hibernate-mapping> 




<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping package="some.pack"> 
    <class name="weatherDataObject" table="data_object"> 
     <id name="id" column="data_object_id"> 
      <generator class="native" /> 
     </id> 
     <property name="name" type="string" column="data_object_name" /> 
     <many-to-one name="coord" class="task.main.DataObjects.weatherCoordinates" 
      column="coordinates_id" unique="true" not-null="true" cascade="all" /> 

    </class> 
</hibernate-mapping> 

當我看到SQL執行字符串是:

Hibernate: insert into coordinates (coordinates_lat, coordinates_lon) values (?, ?) 
Hibernate: insert into data_object (data_object_name, coordinates_id) values (?, ?) 
Hibernate: select weatherdat0_.data_object_id as data_obj1_1_0_, weatherdat0_.data_object_name as data_obj2_1_0_, weatherdat0_.coordinates_id as coordina3_1_0_ from data_object weatherdat0_ where weatherdat0_.data_object_id=? 

的問題是weatherdat0,不知怎的,是錯我的表稱爲我映射它在路上文件data_object不知道如何以及爲什麼改變任何人可以幫助?

+0

你的問題到底是什麼,生成的查詢沒有問題。我無法理解這個問題:「問題是weatherdat0,不知何故,我的表格被稱爲我將其映射到文件data_object中的方式不知道如何以及爲什麼它會被改變,任何人都可以幫助?' – Chaitanya 2014-09-25 17:26:10

+0

Hibernate:select weatherdat0_ .data_object_id as data_obj1_1_0_,weatherdat0_.data_object_name as data_obj2_1_0_,weatherdat0_.coordinates_id as coordina3_1_0_ from data_object weatherdat0_ where weatherdat0_.data_object_id =? weatherdat0_不是我的表的名稱,也不會從數據庫 – EdinTAm 2014-09-25 17:27:18

+0

'from data_object'中檢索任何對象,表格是正確的。那你怎麼說錯了表名? – Chaitanya 2014-09-25 17:28:30

回答

1

查詢是在正確的表產生的,作爲select查詢表上運行from data_object

weatherdat0_僅僅是作爲from聲明中提到的表的別名:

from data_object weatherdat0_ 

所以僅選擇正確的表名。

現在,如果查詢沒有返回任何結果意味着沒有匹配該記錄的記錄,所以我建議您直接在數據庫上運行查詢並查看它是否返回任何記錄。