It seems that Order API doesn't work on the raw query in v2, but the sort is ok when using SQL instead. The code below works differently in gorm v1 and v2.
sql := getSql()
params := getParams()
rows, err := db.Order("-forder.source_created_time").Raw(sql, params...)
log in v2:
SELECT forder.*
FROM sparrow_fullorder_fullorder forder
JOIN sparrow_orders_order o ON o.id=forder.source_order_id
WHERE forder.source = 'online' AND
forder.user_id = 'c88685f78cee4631b0b879583a5ad1f6' AND
forder.deleted = 0
UNION ALL
SELECT forder.*
FROM sparrow_fullorder_fullorder forder
JOIN sparrow_cash_dinningorder do ON do.id=forder.source_order_id
WHERE forder.source = 'dinning' AND
forder.user_id = 'c88685f78cee4631b0b879583a5ad1f6' AND
forder.deleted = 0
log in v1:
SELECT forder.*
FROM sparrow_fullorder_fullorder forder
JOIN sparrow_orders_order o ON o.id=forder.source_order_id
WHERE forder.source = 'online' AND
forder.user_id = 'c88685f78cee4631b0b879583a5ad1f6' AND
forder.deleted = 0
UNION ALL
SELECT forder.*
FROM sparrow_fullorder_fullorder forder
JOIN sparrow_cash_dinningorder do ON do.id=forder.source_order_id
WHERE forder.source = 'dinning' AND
forder.user_id = 'c88685f78cee4631b0b879583a5ad1f6' AND
forder.deleted = 0
ORDER BY -source_created_time
but if use
sql += ` ORDER BY -forder.source_created_time`
it works in v2:
SELECT forder.*
FROM sparrow_fullorder_fullorder forder
JOIN sparrow_orders_order o ON o.id=forder.source_order_id
WHERE forder.source = 'online' AND
forder.user_id = 'c88685f78cee4631b0b879583a5ad1f6' AND
forder.deleted = 0
UNION ALL
SELECT forder.*
FROM sparrow_fullorder_fullorder forder
JOIN sparrow_cash_dinningorder do ON do.id=forder.source_order_id
WHERE forder.source = 'dinning' AND
forder.user_id = 'c88685f78cee4631b0b879583a5ad1f6' AND
forder.deleted = 0
ORDER BY -forder.source_created_time
Who can help me? Thanks very much.