首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPA GenerationType.AUTO和手动设置字段

JPA GenerationType.AUTO和手动设置字段
EN

Stack Overflow用户
提问于 2014-01-09 11:17:56
回答 1查看 285关注 0票数 1

我有一个实体bean,它的id int字段声明为GenerationType.AUTO,以便自动生成ID:

代码语言:javascript
复制
@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中这样做,对我来说,这似乎是很自然的行为。

EN

回答 1

Stack Overflow用户

发布于 2014-01-09 14:34:30

默认情况下,EclipseLink验证主键并将0解释为空值和未设置值,因此将生成主键值。因此,您可以设置值,就像使用它们一样,它们在默认情况下必须大于0。这可以通过主密钥验证策略进行配置,如下所述:primarykey.htm

如果0是有效的主键,则可以设置该属性:

代码语言:javascript
复制
<property name="eclipselink.id-validation" value="NULL"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21018694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档