修改Serviceinfo.hbm.xml配置文件中的generator標簽,由assigned變成increment。
<id name="iid" type="integer">
<column name="IID" />
<generator class="increment" />
</id>
<column name="IID" />
<generator class="increment" />
</id>
2.使用session步驟:
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
//do
tx.commit();
session.close();
使用session時注意,不能在一個session沒有關掉以前再開啟另外的session,盡量以傳參的形式解決;還有不能把session創建在while等循環語句中,不能保證session和事務的及時創建與關閉。Transaction tx = session.beginTransaction();
//do
tx.commit();
session.close();
3.hql是hibernate定義的查詢語句,它跟sql不同,主要體現在沒有select;from后面跟的不是數據庫的表名,而是由數據庫映射而成的抽象類的名稱;where后面的相等判斷可以使用對象等非簡單類型數據。
String hql = "from Parameterinfo where iid = " + IID + " and io = " + io;
4.常用session對象方法
session.delete(serviceinfo);//delete
session.update(serviceinfo);//update
session.saveOrUpdate(serviceinfo);//insert
session.update(serviceinfo);//update
session.saveOrUpdate(serviceinfo);//insert
5.表中存在有外鍵依賴的問題:
如果表A的字段a依賴于表B中的主鍵b,則在把表映射成抽象類時,會把表A的字段a映射為一個表B的實例,但是當拿到表A的實例是,其中的關于表B的屬性中只有主鍵b是有值得,其余都為NULL,只能再通過查詢獲得表B實例的全部信息。