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
;我只是无法正确配置。
我在网上找到的一些文档通常似乎提到 不 将 @GeneratedValue
与 GenerationType.IDENTITY
一起使用很重要,并且通常建议使用另外两个 GenerationType
策略之一。但是,他们似乎没有特别提到可以在不使用 any 策略的情况下使它起作用。
正如克里斯在评论中所说:
They don't mention it because it wasn't thought to be worth mentioning
所以基本上:是的,它工作得很好。
问题
如果要持久化的实体不使用 @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
;我只是无法正确配置。
我在网上找到的一些文档通常似乎提到 不 将 @GeneratedValue
与 GenerationType.IDENTITY
一起使用很重要,并且通常建议使用另外两个 GenerationType
策略之一。但是,他们似乎没有特别提到可以在不使用 any 策略的情况下使它起作用。
正如克里斯在评论中所说:
They don't mention it because it wasn't thought to be worth mentioning
所以基本上:是的,它工作得很好。