我使用Spring Data,Hibernate和Microsoft SQL Server。我有2个实体:Role
和Privilege
。一个角色有很多特权。权限有VALID_TO
列。
我希望每个角色都只拥有仍然有效的权限(即VALID_TO <= GETDATE()
)。
我发现实现这一点的最简单方法是使用Hibernate Privilege
注释注释@Where
实体,如下所示:
// ...
@Where(clause = "VALID_TO <= GETDATE()")
class Privilege {
// ...
}
但这种方法的缺点是它使用Transact-SQL;如果迁移到另一个数据库,它将导致额外的返工。 此外,这种方法使代码依赖于Hibernate注释。
有没有办法使用纯Spring数据过滤掉权限?