【问题标题】:JPA Filter Properties of Queries查询的 JPA 过滤器属性
【发布时间】:2014-04-18 03:31:11
【问题描述】:

我正在考虑审计和过滤 JPA 实体属性和字段的最佳方法

我的问题是考虑是否存在过滤结果的接口或事物

例如,我有一个具有管理员角色的用户和另一个具有卖方角色的用户,两者都可以进行查询,但不是都可以读取和写入所有属性。为了编写过滤器,我想用线程属性制作一个拦截器来了解当前线程的作用。但在查询中我不知道要过滤的属性是什么。

例子

EntityManager em = ...
Query q = em.createQuery ("SELECT AVG(x.price) FROM Magazine x");
Number result = (Number) q.getSingleResult ();

拦截方法的结果是一个整数,但是如何知道实体是什么以及要读取的属性是什么。

对于具有卖家角色的用户,价格必须显示 但是对于具有管理员角色的用户,价格必须为NULL(假设管理员看不到价格)

是否存在一些使用 JPA 或 Hibernate 来执行此操作?我提出了一个问题......听听一些想法。

谢谢,

【问题讨论】:

    标签: java hibernate jpa audit


    【解决方案1】:

    如果我对第一个问题的理解正确,您可以使用 TypedQuery。授权是一个不同的问题,您应该在其他地方处理它(而不是在数据库代码中)

    【讨论】:

    • 这是我的问题..我需要为另一个程序员创建一个基础但是..删除未经授权读取的属性的地方在哪里,如果之后该方法返回的值是不受我控制。
    • 我猜你可能已经实现了 Spring Security,例如
    猜你喜欢
    • 2016-07-26
    • 2017-03-24
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多