java有人知道在保存之前如何使用spring jpa通过序列和任何其他属性连接id生成?
想象这是一个完整结构定义良好的实体
public class Entyty{
//genarate by sequence
private Long id;
//value coming from request
private String value;
//I need concatenate this value with id + value before to save in db
private String composeValue;
}
有人知道怎么做吗
# 1 楼答案
你不能用正常的JPA流程来完成
原因很明显:只有在保存实体时才会生成id
因此,您必须使您的要求更加宽松,或者手动分配id。 如果这对你很重要的话,它可能仍然来自一个序列
下面是一些可能有用的变体:
手动生成id。您可以使用普通SQL查询从数据库中为序列选择下一个值,并使用它设置任何新实体的id。然后可以使用普通java代码将其与另一个属性连接起来
您可以有一个getter,它只接受id和其他属性,将它们连接起来并返回结果。一旦设置了属性和id,getter将返回正确的结果。在那之前没有那么多
可以使用触发器填充数据库中的字段。如果需要,您可以选择额外的字段或将其保留在数据库中
不使用触发器,您可以使用视图并让视图组装额外字段。如果在where子句或类似语句中使用它,则可以在其上放置基于函数的索引