Spring Data JPA - 如何在检索后设置瞬态字段

San*_*jay 2 spring hibernate jpa spring-data spring-data-jpa

在使用JpaRepositorySpring Data JPA的方法(例如findOnefindBy...等)获取实体后,我想知道自动执行一些自定义代码的最佳方法是什么,比如初始化一些瞬态字段。

换句话说,假设我有一个用户实体fullName瞬态场,应设置为串联firstName,并lastName从数据库中获取后,我该怎么办?

Ala*_*Hay 7

首先,如果您想要全名,只需编写一个方法来即时连接姓名/姓氏。它不一定是一个字段。

如果你真的需要对实体负载做一些处理,那么注册一个@PostLoad实体生命周期回调:

public class MyEntity{

     @PostLoad
     //invoked by framework on entity load.
     public void doStuff(){
         fullName =  forename + " " + surname;   
     }

     //alternative
     public String getFullName(){
         return forename + " " + surname;
     }
Run Code Online (Sandbox Code Playgroud)

https://en.wikibooks.org/wiki/Java_Persistence/Advanced_Topics#Example_of_Entity_event_annotations