我有一个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。

10-06 01:07