2013-08-29 20 views
1

這裏是我的實體類:JPA - 無法找到階級適當的構造

@Entity 
public class MyData { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Integer id; 

    public MyData() { 
     // ... 
    } 

    public MyData(String fieldList, Object ... values) { 
     // ... 
    } 

    // Getters and setters here... 
} 

後來,我想執行這個查詢:

SELECT NEW com.company.MyData('f1,f2,f3',t.f1,t.f2,t.f3) FROM my_data_table t WHERE 1=1 

這引發異常:

Unable to locate appropriate constructor on class [package.MyData] 

我的查詢可以包含1,2,3 ...或更多的字段。

如何幫助我的JPA提供程序(hibernate)查找構造函數?

休眠3.6.8
JPA 2
的Java 6

+0

你想要那個查詢做什麼?因爲afaik你寫的語法錯誤,但我不知道你想要達到什麼...... – fvu

+0

@fvu我希望我的查詢從我的表中獲取一些數據並將這些數據存儲到我的對象MyData中。動態生成字段列表 – Stephan

+0

而不是使用點符號(...)傳遞多個參數,嘗試將其更改爲接收/傳遞數組(以Object []值的形式) –

回答

1

這是我如何解決我的問題:

SELECT NEW com.company.MyData('f1,f2,f3',t) FROM my_data_table t WHERE 1=1 

我的類現在看起來是這樣的:

@Entity 
public class MyData { 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Integer id; 

    public MyData() { 
     // ... 
    } 

    public MyData(String fieldList, MyData md) { 
     // ... 
    } 

    // Getters and setters here... 
} 
相關問題