我有一个grails系统,已经在服务器上运行,并且我们使用租户解决方案来区分公司的分支机构,但是现在我需要将信息从一个分支恢复到另一个分支。
关键是当我在模型中进行以下查询时:
def expedition = Expedition.findByCode(row.code)
如果我的探险是由分支机构发出的,那么该发现不会返回任何信息,因为这毕竟是分支机构不相互填充信息的初始架构。
有人知道我该怎么做吗?可能只是在那个时候返回该对象,或者是在模型中返回一些注释,但是我不想删除我的 Multi-Tenancy 结构,因为我仍然需要阻止一些信息。
最佳答案
您可以使用grails.gorm.multitenancy.Tenants
类上的方法来实现此目的:
允许查找任何租户:
def expedition = Tenants.withoutId { Expedition.findByCode(row.code) }
指定租户
Long otherTenantsId = 2L
def expedition = Tenants.withId(otherTenantsId) { Expedition.findByCode(row.code) }
当然,这样做或信任用户输入的租户ID时要小心,因为它将允许访问其他用户数据。
请注意,如果您想将
@WithoutTenant
添加到类/方法级别,也可以使用ojit_code。