使用JPQL获取字符串列表

时间:2015-05-10 15:24:35

标签: java jstl jpql

我是Java新手并且还在学习,请在回答时牢记这一点。

所以我想根据使用JPQL的MySQL数据库中的数据获取字符串列表。更具体地说,我试图从特定表格中的某一列获得所有独特年份。数据类型是MySQL日期(yyyy-mm-dd)。 SQL工作得很好!但是试图把它放在列表中并没有达到我的预期。

到目前为止我所拥有的:

的Servlet

id

使用JSTL查看:

// em is of the type EntityManager, other queries retrieving objects working fine
List<String> years = em.createQuery("select distinct (date_format(p.birthday, '%Y')) as year from Player p order by year").getResultList();
request.setAttribute("years", years);

这就是:

<c:forEach var="year" items="${years}">
      <p>${year}</p>
</c:forEach>

1 个答案:

答案 0 :(得分:0)

使用JPA内置支持日期。 对于Hibernate:

Query query = em.createQuery("select distinct YEAR(p.birthday) as year from Player p order by year");
List<String> years = query.getResultLits();

对于其他实施(JPA 2.1):

Query query = em.createQuery("select distinct FUNCTION('date_format', p.birthday, '%Y') as year from Player p order by year");
List<String> years = query.getResultLits();

我认为servlet不是内置EntityManager的最佳位置。我会用DAO模式 Data Access Object Pattern