Spring JPA + 在触发器中生成的 EclipseLink ID
Spring JPA + EclipseLink ID generated in trigger
我在实体上指定了一个 ID 列,如下所示:
@Id
@Column(name="id_seq", unique=true, nullable=false, precision=38)
private Long idSeq;
真的很基础。问题是该字段与其他几个字段一起设置在触发器中。
似乎没有适合这种需要的@Generated 选项。好的 ol' JDBC 我会通过调用 getGeneratedKeys() 来做到这一点。
有没有办法指定这个字段在插入后需要在实体中更新?
好吧,事实证明这样就完成了工作:
@ReturnInsert(returnOnly=true)
您还必须在实体上使用 MyJpaRespoitory.saveAndFlush() 而不是 .save(),以便在保存完成时查看实体中更新的值。
这适用于 Oracle,但可能不适用于所有平台。
我在实体上指定了一个 ID 列,如下所示:
@Id
@Column(name="id_seq", unique=true, nullable=false, precision=38)
private Long idSeq;
真的很基础。问题是该字段与其他几个字段一起设置在触发器中。
似乎没有适合这种需要的@Generated 选项。好的 ol' JDBC 我会通过调用 getGeneratedKeys() 来做到这一点。
有没有办法指定这个字段在插入后需要在实体中更新?
好吧,事实证明这样就完成了工作:
@ReturnInsert(returnOnly=true)
您还必须在实体上使用 MyJpaRespoitory.saveAndFlush() 而不是 .save(),以便在保存完成时查看实体中更新的值。
这适用于 Oracle,但可能不适用于所有平台。