我是maven和java的新手。我正在开发一个maven项目,我想从mysql DB中选择一些包含多行的数据。 以下代码已从以下链接复制。但它不起作用。我搜索了很多,发现了一些相同的结果。但它们都不起作用。我不知道怎么能这样做。
JPA, Entity manager, select many columns and get result list custom objects
我的代码:
try{
EntityManagerFactory factory = Persistence.createEntityManagerFactory("com.mycompany_LinkedIn_war_1.0-SNAPSHOTPU");
EntityManager em = factory.createEntityManager();
TypedQuery<KarjooSearchInfo[]> q = em.createQuery(" SELECT name,education,gender,more,time FROM karjoo_search_info WHERE 1 ", KarjooSearchInfo[].class);
List<KarjooSearchInfo[]> resultList = q.getResultList();
do something...
}catch....
例外是:
An exception occurred while creating a query in EntityManager:
Exception Description: Syntax error parsing [ SELECT name,education,gender,more,time FROM `karjoo_search_info` WHERE 1 ].
[69, 69] An identification variable must be provided for a range variable declaration.
[75, 76] The expression is not a valid conditional expression.
答案 0 :(得分:1)
请记住,您的查询实际上是在JPQL中,而不是SQL,所以您要搜索托管类 - 而不是表。
我想你可能想要:
TypedQuery<KarjooSearchInfo[]> q = em.createQuery("SELECT K FROM KarjooSearchInfo K", KarjooSearchInfo.class);
答案 1 :(得分:0)
我建议您进行以下更改:
KarjooSearchInfo.class
,而不是KarjooSearchInfo[].class
。WHERE true
,而不是WHERE 1
。