2012-12-02 47 views
0

從C#移動到java,這是我的第一次嘗試在實際寫東西,我試圖設置我的數據層,但我想我在LINQ to SQL中缺少類似DataContext的東西。 NET如何執行HibernateQuery

我試着用Hibernate查詢數據庫,但好像我錯過了一些東西,我下載了Hibernate 4和QueryDSL進行類型安全查詢。

接下來我連接到我的postgreSQL數據庫並使用Dali生成DAO對象(我認爲在菜單中我從表中選擇了JPA entetes),但是我不確定哪些對象需要執行查詢?像連接管理器或東西)

我在想念的東西在這裏我想:

EmployeesRepository repo = new EmployeesRepository(); 
List<Employees> employees = repo.GetByName("Steve"); 
Employees s = employees.get(0); 
String g = s.getName(); 

我的實體倉庫:

public class EmployeesRepository { 

    public List<Employees> GetByName(String ename) 
    { 
     HibernateQuery qry = createQuery(employees); 
     qry.where(employees.name.like(ename)); 
     return qry.list(employees); 
    } 

    private HibernateQuery createQuery(QEmployees employee) 
    { 
     return new HibernateQuery().from(employee); 
    } 
} 

林越來越:

java.lang.UnsupportedOperationException:在分離查詢無會話中使用

回答

2

您需要創建/執行查詢前打開一個Hibernate會話。

例子:

Session session = HibernateUtil.getSessionFactory().openSession(); 

當你與查詢執行完成後,你需要關閉。

session.close(); 

這裏是step by step example

注意:您正在使用的內容與上述示例中描述的內容之間可能存在休眠版本不匹配的情況,您可能需要僅僅對它進行修改。

+0

你能告訴我關於如何做到這一點的例子嗎?我是否缺少一些類似於某種配置的文件? – formatc

+0

@ user1010609:提供了一個示例鏈接,它可以幫助您。 – kosa

+0

謝謝,看起來不錯。我希望我不會有任何問題,因爲我在教程中生成了與DAO稍有不同的問題。 – formatc