如何在 Spring Data Neo4j >=v6 中加载实体后对其执行方法
How do I execute a method on an entity after it has been loaded in Spring Data Neo4j >=v6
在 Spring Data Neo4j 5 中,有一个注解 @PostLoad 类似于其他持久性框架。这个注释似乎在版本 6 中消失了(我使用的是 6.1.6)
我想在加载节点后填充一些临时属性。
根据Gerrit的评论,SDN 6+中没有这个功能。
解决方案是在你的 getter 中初始化你的瞬态值。
这是我所做的一个非常简化的版本:
@Node
public class Event {
@Id @GeneratedValue @Getter
private Long id;
@Getter @Setter
private String title;
@Transient
private Integer year;
@Getter @Setter
private ZonedDateTime fullDate;
}
public Integer getYear() {
public Integer getYear() {
if (year == null && this.fullDate != null) year = this.fullDate.getYear();
return year;
}
}
这段代码在语义上可能没有意义,因为真正的代码要复杂得多。所以请不要评论“你不需要为此使用瞬态属性。”
在 Spring Data Neo4j 5 中,有一个注解 @PostLoad 类似于其他持久性框架。这个注释似乎在版本 6 中消失了(我使用的是 6.1.6)
我想在加载节点后填充一些临时属性。
根据Gerrit的评论,SDN 6+中没有这个功能。 解决方案是在你的 getter 中初始化你的瞬态值。
这是我所做的一个非常简化的版本:
@Node
public class Event {
@Id @GeneratedValue @Getter
private Long id;
@Getter @Setter
private String title;
@Transient
private Integer year;
@Getter @Setter
private ZonedDateTime fullDate;
}
public Integer getYear() {
public Integer getYear() {
if (year == null && this.fullDate != null) year = this.fullDate.getYear();
return year;
}
}
这段代码在语义上可能没有意义,因为真正的代码要复杂得多。所以请不要评论“你不需要为此使用瞬态属性。”