我有一个实体bean,它的id int字段声明为GenerationType.AUTO,以便自动生成ID:
@Entity
public class CustomerPool implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
//setters getters
}但是,我需要确保插入的第一个CustomerPool的ID为0。
我认为设置id为0的CustomerPool会优先于指令,相反,我有不同的行为(使用JPA而不是EclipseLink),但大多数情况下,我设置的ID被忽略了。
那么,是否可以将ID设置为自动生成,如果没有指示,则使用指定的ID (如果指示)?不知怎么的,我已经习惯了在PHP中这样做,对我来说,这似乎是很自然的行为。
发布于 2014-01-09 14:34:30
默认情况下,EclipseLink验证主键并将0解释为空值和未设置值,因此将生成主键值。因此,您可以设置值,就像使用它们一样,它们在默认情况下必须大于0。这可以通过主密钥验证策略进行配置,如下所述:primarykey.htm
如果0是有效的主键,则可以设置该属性:
<property name="eclipselink.id-validation" value="NULL"/>https://stackoverflow.com/questions/21018694
复制相似问题