0

好的,我们有一个 Grails 域(有人称之为准域类)类映射到 SQL Server 2008 中的视图。

这是下面的视图:

    class DomainView {

    Integer someotherKey
    Integer someKey
    String firstName
    String lastName
    String otherName
    String address
    String city

    static mapping = {
        table name:"domain_view", schema:"sch", catalog: "cat"
        version false
    }
}

我们正在尝试在视图与键之间进行基本的 SELECT:

int some_key

但是,我们得到的结果不一致。我开始调试,我意识到即使在同一个方法中,完全相同的 Grails 动态 findBy 方法也会为完全相同的键返回不同的结果

DomainView dv = DomainView.findBySomeKey(key)

DomainView dv2 = DomainView.findBySomeKey(key)

DomainView dv3 = DomainView.findBySomeKey(key)

DomainView dv4 = DomainView.findBySomeKey(key)

每个 findBy 都返回不同的结果。有时是正确的,但通常 some_key 值与传入的参数不匹配。

虽然对于返回的项目 some_key 的 val 关闭,但 other_name 或 someother_key 始终相同。

例子:

someother_key  some_key        other_name
        5301    1901        FIRMNAME    
        5301    2051        FIRMNAME    
        5301    2052        FIRMNAME    
        5301    2053        FIRMNAME

所以我们正在搜索 some_key = 1901。我们会随机获取这四个值中的任何一个,但只能从其他 2 个值(someother_key,other_name)相同的列表中获取。

使用 findByAll 还会返回从该组中随机选择的单个值。我假设它会返回一个列表,但它只返回 some_key 可能匹配或不匹配的单个项目。

4

0 回答 0