EclipseLink 批量写入:自定义复合键而不是@GeneratedValue?

EclipseLink batch-writing : custom composite key instead of @GeneratedValue?

问题

如果要持久化的实体不使用 @GeneratedValue 作为主键,是否可以使用 EclipseLink 的 batch-writing

@IdClass使用复合键,值是在代码实例化期间分配的。

例子

@Entity
@Table(name = "myentity")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@IdClass(MyIdClass.class)
public class MyEntity {

  @Id
  @Column(updatable = false)
  private String foo;

  @Id
  @Column(updatable = false)
  private String bar;

  @Column
  private String whatever;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@Embeddable
public class MyIdClass implements Serializable {

  private String foo;
  private String bar;
}

上下文

到目前为止,我无法激活 EclipseLink 的 batch-writing;我只是无法正确配置。

我在网上找到的一些文档通常似乎提到 @GeneratedValueGenerationType.IDENTITY 一起使用很重要,并且通常建议使用另外两个 GenerationType 策略之一。但是,他们似乎没有特别提到可以在不使用 any 策略的情况下使它起作用。

正如克里斯在评论中所说:

They don't mention it because it wasn't thought to be worth mentioning

所以基本上:是的,它工作得很好。