查询的java JPA筛选器属性
我在想审计和过滤JPA实体属性和字段的最佳方法
我的问题是,是否存在过滤结果的接口或东西
例如,我有一个管理员角色的用户和另一个卖家角色的用户,两者都可以进行查询,但不是都可以读取和写入所有属性。为了编写过滤器,我想制作一个具有线程属性的拦截器,以了解当前线程的角色。但在查询中,我不知道要过滤的属性是什么
范例
EntityManager em = ...
Query q = em.createQuery ("SELECT AVG(x.price) FROM Magazine x");
Number result = (Number) q.getSingleResult ();
截取方法的结果是一个整数,但如何知道什么是实体以及要读取的属性
对于具有卖家角色的用户,价格必须显示 但是对于管理员角色的用户,价格必须为空(假设管理员看不到价格)
有没有一些JPA或Hibernate可以做到这一点?我向广播提出一个问题。。听听你的想法
谢谢
# 1 楼答案
如果我对第一个问题的理解正确,你可以使用TypedQuery。授权是另一个问题,您应该在其他地方处理它(而不是在DB代码中)