自动生成的意思是你指定一个序列给hibernate,hibernate会找到序列的下一个值给你的主键
比如你创建一个序列
CREATE SEQUENCE user_id_seq INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区
然后在映射文件里面把这个序列指定给hibernate,让序列与某个主键相关联,然后hibernate就知道如何自增了!!
<id name="id" column="USER_ID" >
<generator class="sequence">
<param name="sequence">user_id_seq</param>
</generator>
</id>
ok再试试.希望对你有帮助
<generator class="sequence"/>
</id>
<property name="userName"/>
上面的那个设置成native吧,这个比较常用点
下面的那个设置成你还要设置对应的是表中的那个字段。
1.你没创建序列 如果创建了按下面的格式
<id name="id" type="java.lang.Integer">
<column name="ID" precision="10" scale="0" />
<generator class="sequence">
<param name="sequence">NEWS_ID </param>
</generator>
</id>
NEWS_ID 是你创建的序列的名称
用number(38)就可以吧,主键用long会很慢!至于hibernate可以这些配置实体类
@entity
@javax.persistence.sequencegenerator(name = "seq_scheme", sequencename = "seq_scheme", allocationsize = 1)
@table(name = "user")
@org.hibernate.annotations.entity(dynamicinsert = true, dynamicupdate = true, selectbeforeupdate = true)
public final class user implements serializable {
@id
@generatedvalue(strategy = generationtype.sequence, generator = "seq_scheme")
/* * */
@column(name = "userid")
private long userid;
}
sequence建了吗???
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....