嗨,大家好我是新來的JPA,命名查詢,等等。我需要這樣的:JPA - 從動態表名稱選擇所有的行
select t from :tableName t
代碼後來我想是這樣的:
em.createQuery(...);
setParameter("tableName", "Person")
結果將是:
select * from person
如何編寫這樣一個通用的JPA查詢語句允許從選擇的所有行:tableNam e可以在運行時定義?在此先感謝
嗨,大家好我是新來的JPA,命名查詢,等等。我需要這樣的:JPA - 從動態表名稱選擇所有的行
select t from :tableName t
代碼後來我想是這樣的:
em.createQuery(...);
setParameter("tableName", "Person")
結果將是:
select * from person
如何編寫這樣一個通用的JPA查詢語句允許從選擇的所有行:tableNam e可以在運行時定義?在此先感謝
試試這個我想這樣的作品以及
EntityManagerFactory emfactory=Persistence.createEntityManagerFactory("Eclipselink_JPA");
EntityManager entitymanager = emfactory.createEntityManager();
Query query = entitymanager.
createQuery("Select p from Person p");
List<String> list = query.getResultList();
不工作..我正在使用hibernate和sql server。看到錯誤:SQLServerException:必須聲明表變量 – Niki
setParameter("foo", foo)
被用於設置值表中沒有設置表名稱的列。我不認爲它會工作,因爲你想動態設置表名。
你可以試試這個:
public returnType foo(String tableName){
String jpql = "SELECT t FROM " + tableName+ " t";
Query query = em.createQuery(jpql);
//rest of the code
}
他爲什麼要嘗試? JPQL中沒有'SELECT *'這樣的東西。 –
對不起,我會編輯.. @NeilStockton –
的可能的複製[JPA:如何指定對應一類在運行時的表名(https://stackoverflow.com/questions/906671/jpa如何做 - 我指定 - 表名 - 對應於一個類在運行時) –
嗨,這個問題沒有疑問 – Niki
它不能這樣做,表名可以不會被參數化。 – Shadov