GORM executeUpdate查询

问题描述 投票:-1回答:1

如何为以下SQL查询编写GORM executeUpdate查询

UPDATE student_marks sm SET
    sm.totalMarks = sm.theoryMarks + sm.homeAssignmentMarks
WHERE
    sm.homeAssignmentMarks IS NOT NULL
        AND sm.theoryMarks IS NOT NULL
            AND sm.theoryMarks = sm.totalMarks
                AND sm.examHeldIn = 6;

这里的理论标记和homeAssignmentMarks都是String。

grails hql gorm
1个回答
0
投票
def map = [:]
map.examHeldInt = 6

StudentMarks.executeUpdate("""
    UPDATE StudentMarks sm SET
        sm.totalMarks = CAST(sm.theoryMarks AS int) + CAST(sm.homeAssignmentMarks AS int)
    WHERE
        sm.homeAssignmentMarks IS NOT NULL
            AND sm.theoryMarks IS NOT NULL
                AND sm.theoryMarks = sm.totalMarks
                    AND sm.examHeldIn = :examHeldIn""", map)

像上面这样你需要将字符串作为int来表示能够添加它们查找转换和连接

© www.soinside.com 2019 - 2024. All rights reserved.