有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    你不能用正常的JPA流程来完成

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

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

    下面是一些可能有用的变体:

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

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

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

    4. 不使用触发器,您可以使用视图并让视图组装额外字段。如果在where子句或类似语句中使用它,则可以在其上放置基于函数的索引