JPQL 查询 SELECT 可选 +通用 DAO 选择
我遵循一个有效的 JPA 示例来检索类别对象,如下所示:
return (ArrayList<Category>) getEntityManager().createQuery("from Category").getResultList();
查询非常简写 - 我找不到关于什么是可选的以及什么不在任何指南中的规则。这种简洁可以接受吗?
其次,我现在想在通用 DAO 中实现这一点,例如:
public interface DAO<E, K>
{
List<E> getAll();
}
如何重写第一个查询以适用于所有类型,因为我无法对“来自类别”进行硬编码..?
I have followed a working JPA example to retrieve Category objects as such:
return (ArrayList<Category>) getEntityManager().createQuery("from Category").getResultList();
The query is very shorthand - and I can't find the rules for what is optional and what isn't in any of the guides. Is this brevity acceptable?
Secondly, I want to now implement this in a generic DAO, something such as:
public interface DAO<E, K>
{
List<E> getAll();
}
How can I rewrite the first query to work for all types as I can't hardcode the "from Category"..?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,简洁是可以接受的。虽然我更喜欢完整的语法,因为它对其他有更多 SQL 经验的人来说更“有吸引力”。
您必须向 DAO 添加一个
Class
参数:Yes, the brevity is acceptable. Although I prefer the full syntax because it is more "appealing" to others who have more SQL experience.
You have to add a
Class<E>
parameter to your DAO:您实际上不必使用方法参数,但可以使用反射。
使用反射的示例代码
You actually don't have to use a method parameter, but can use Reflection.
Example Code using Reflection