我是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>
答案 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