有人知道如何在保存之前将id按序列和任何其他属性与springjpa连接起来



这是一个具有完整结构、定义良好的的实体

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;
}

有人知道怎么做?

您不能用普通的JPA进程来完成它。

原因很明显:只有在保存实体时才会生成id。

因此,你要么必须让你的要求更宽松,要么手动分配id。如果这对你来说很重要的话,它可能仍然来自一个序列。

因此,以下是一些可能有用的变体:

  1. 手动生成id。您可以使用普通的SQL查询从数据库中为序列选择下一个值,并使用它来设置任何新实体的id。然后,您可以使用普通的java代码将它与另一个属性连接起来。

  2. 您只能有一个getter,它将获取id和其他属性,将它们连接起来并返回结果。一旦设置了属性和id,getter就会返回正确的结果。在此之前没有那么多。

  3. 您可以使用触发器填充数据库中的字段。如果您愿意,您可以选择额外的字段或将其保留在数据库中。

  4. 您可以使用视图并让视图组装额外的字段,而不是使用触发器。如果你在where子句或类似的地方使用它,你可以在上面放一个基于函数的索引

最新更新