我将在请求中传递className,在实体中将像上面那样存储class Name字段。
主键值应附加我的班级名称。我们如何做到的。
我有办法 1.首先插入记录 2.使用主键值更新相同的记录。
我希望这是一个错误的方法,是否可以在单个保存调用中执行?如果没有,那么实现这一目标的有效方法是什么。
答案 0 :(得分:1)
我认为您已经怀疑这不是一个好主意。但是无论如何,我强烈建议您不要实际上以这种方式存储数据,而只是以这种方式显示数据。您可以使用@PostLoad
回调来做到这一点。将事件侦听器添加到您的实体:
@Entity
@EntityListeners(FooListener.class)
public class Foo {
@Id
@GeneratedValue
private Long primaryId;
private String className;
...
...
}
并实现后加载:
public class FooListener {
@PostLoad
public void updateClassName( Foo p ) {
p.setClassName(p.getClassName() + "_" + p.getPrimaryId());
}
}