一、起因:orgId
经理要求我们在所有的查询语句中(除了根据id查询)都加上限制字段orgId。
二、是什么?
orgId:法人Id。
代表研究院的id或公司的Id;
三、为什么?
大集中模式:几个公司(研究院)同时使用一个数据管理平台管理公司(研究院)的事务。
此时,毫无关系的A公司和B公司的数据需要各自保密:A不能看B的数据,B不能看A的数据。 因此,用orgId 区分各个公司(研究院)。
在查询时,用orgId限制查询,可以根据当前登录用户的orgId获取该用户所在公司的数据,并且不影响其他正在使用此平台的公司的数据。
四、如何用?
需要在原有查询的基础上添加限制字段。
以前的查询语句:
/** * 根据管理员类型查询所有所有数据 * @param managerType * @return List<AssetDeptManagerConfig> */ @Query(value = "select a from AssetDeptManagerConfig a where a.managerType = ?1") public List<AssetDeptManagerConfig> findAllByManagerType(String managerType);
添加限制字段:orgId:
/** * 根据管理员类型查询所有所有数据 * @param managerType * @return List<AssetDeptManagerConfig> */ @Query(value = "select a from AssetDeptManagerConfig a where a.orgId = ?1 and a.managerType = ?2") public List<AssetDeptManagerConfig> findAllByManagerType(String orgId,String managerType);
此时,问号后的“1”和“2”要和传入参数的顺序对应,才能实现。