Java Hibernate:对数据库的所有请求应用特定列过滤
在我的数据库中,我有属于不同用户的数据。 在代码中,对数据库的请求通过不同的方式进行:Java Hibernate:对数据库的所有请求应用特定列过滤,java,hibernate,hql,hibernate-criteria,Java,Hibernate,Hql,Hibernate Criteria,在我的数据库中,我有属于不同用户的数据。 在代码中,对数据库的请求通过不同的方式进行: 使用标准: 从代码中的一个位置(公共父DAO) 来自代码中的许多地方(儿童DAOs) 使用HQL查询: 两种方法相同 现在,我想确定的是,任何程序员,无论他以何种方式向DB发出请求,都不会犯错误,也不会忘记通过user\u id从任何表中过滤数据。该值是当前用户的id。(如果一个表没有这样的列,这意味着所有用户都可以访问它的数据,那么过滤应该被忽略) 理想情况下,这种过滤将在更深层次的某个地方自动
- 使用标准:
- 从代码中的一个位置(公共父DAO)
- 来自代码中的许多地方(儿童DAOs)
- 使用HQL查询:
- 两种方法相同
user\u id
从任何表中过滤数据。该值是当前用户的id
。(如果一个表没有这样的列,这意味着所有用户都可以访问它的数据,那么过滤应该被忽略)
理想情况下,这种过滤将在更深层次的某个地方自动执行,而不是在我们编写和重写的代码中执行。有可能吗?你可以这样做
这可能不是理想的解决方案,但这样我们可以达到您的要求。您能详细说明一下吗?程序员可以查询或验证实体类,以检查表是否有user\U id列。@Lathy问题是程序员对实体类(每个)有一些事情要做-查询验证。他可能会忘记做这件事。违反用户数据安全的错误代价。获取当前正在使用的实体类的元数据,该元数据将为您提供其中使用的属性,您可以迭代该属性以查找该实体是否具有用户id,并根据结果应用过滤器。在拦截器/aop@Lathy这正是我问题的主题。