大家好我是jpa的新手,命名查询等等。我需要这样的东西:
select t from :tableName t
稍后在代码中我想要这样的东西:
em.createQuery(...);
setParameter("tableName", "Person")
结果将是:
select * from person
如何编写这样的通用jpa查询语句,允许从:tableName中选择所有行,这些行可以在运行时定义?提前谢谢
答案 0 :(得分:1)
尝试这个我认为这很有效
EntityManagerFactory emfactory=Persistence.createEntityManagerFactory("Eclipselink_JPA" );
EntityManager entitymanager = emfactory.createEntityManager();
Query query = entitymanager.
createQuery("Select p from Person p");
List<String> list = query.getResultList();
答案 1 :(得分:0)
setParameter("foo", foo)
用于设置表的列的值,而不是设置表名。我不认为它会起作用,因为你想动态设置表名。
你可以试试这个:
public returnType foo(String tableName){
String jpql = "SELECT t FROM " + tableName+ " t";
Query query = em.createQuery(jpql);
//rest of the code
}