我有一个已经在服务器上运行的grails系统,我们使用租户解决方案来区分公司的分支机构,但是现在我需要将信息从一个分支恢复到另一个分支。
关键是当我在模型中进行以下查询时:
def expedition = Expedition.findByCode(row.code)
如果我的探险是由分支机构发出的,那么此发现不会返回任何内容,毕竟这是分支机构不相互填充信息的初始架构。
有人知道我该怎么做吗?可能只是返回那个对象或模型中的某些注释,但我不想删除多租户结构,因为我仍然需要阻止一些信息。
答案 0 :(得分:1)
您可以使用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
。