mysql - 如何将实体值设置为不同于 jpa 数据库中的值的另一个值

标签 mysql hibernate jpa

在我的 MySQL 数据库中,我有一个表 X,其字段“foo”可以为空。我正在使用 jpa 将此数据库的所有功能呈现给我的前端。我想要的是,每当请求表 X 的实体并且 'foo' 的值为 null 时,该值会自动更改为另一个值。然而,这个值不应该被持久化,它应该只被我的前端看到。在我的数据库中,“foo”应该保持为空。如何才能做到这一点?我可以在字段“foo”的 setter 中实现它吗?还是默认不使用这个setter?

最佳答案

您可以实现@PrePersist 或@PostUpdate 以在将对象更新到数据库之前添加一些功能,或者您可以使用 hibernate 事件在其他时间做同样的事情。当您将注释放在 setter 而不是局部变量上时,Hibernate 将使用 setter。

Depending on whether you annotate fields or methods, the access type used by Hibernate will be field or property... source

关于mysql - 如何将实体值设置为不同于 jpa 数据库中的值的另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942528/

相关文章:

java - 在 Java 中对集合进行排序

java - 验证类层次结构覆盖

mysql - Spring Data JPA 上的 "Cannot add foreign key constraint"

java - 保存对象的 toString 值时出现 Stackoverflow 错误 - Java/Hibernate/Spring

mysql - 使用 Catalyst 使用 DBIC 将文件存储在数据库中

php - PDO 将行从一个数据库移动到另一个数据库

java - 从多个表中选择 count(*)

spring - Spring数据存储库不会以多对多关系保存数据

php - MySQL的threads_connected数量减慢了我的网站速度

mysql - Bookshelf、Knex 和 mysql 保存对象列表