Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating struct value in BeforeUpdate() does not use new value in query #6774

Open
rverdile opened this issue Jan 3, 2024 · 1 comment
Open
Assignees
Labels
type:with reproduction steps with reproduction steps

Comments

@rverdile
Copy link

rverdile commented Jan 3, 2024

GORM Playground Link

go-gorm/playground#678

Description

I would like to be able to use BeforeUpdate() to modify a column value, before updating. For example, I may want to trim any whitespace on the value before updating it in the database. The functionality is possible with the BeforeCreate() hook, but it does not seem to be possible with the BeforeUpdate() hook.

in my code example, you can see I create a user " jinzhu ". In the BeforeCreate() method, I trim the whitespace and update the value, and the query uses the updated value.

In my code example, I update the user to the name " tux ". In the BeforeUpdate() method, I trim the whitespace and update the value, but the actual update query still uses the original value. I would expect it to use the updated value.

@github-actions github-actions bot added the type:with reproduction steps with reproduction steps label Jan 3, 2024
@rverdile
Copy link
Author

rverdile commented Jan 3, 2024

It's easy enough to work around this by trimming whitespace the Update() call instead, but this seemed like a bug.

@rverdile rverdile changed the title Updating column value in BeforeUpdate() does not use new value Updating struct value in BeforeUpdate() does not use new value in query Jan 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:with reproduction steps with reproduction steps
Projects
None yet
Development

No branches or pull requests

2 participants