开发者社区> 问答> 正文

spring4+springmvc+hibernate3主键UUID无法生成 ?报错

我的entity文件是这样的

@Entity
@Table(name = "userinfo", schema = "designerdb", catalog = "")
public class UserinfoEntity {
    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @Column(length=32,nullable = false)
    private String userid;
    @Column(length=25)
    private String username;
    @Column(length=25)
    private String password;
    @Column(length=25)
    private String realname;
    @Column(length=2)
    private String sex;
    @Column(length=3)
    private Integer age;
    @Column(length=18)
    private String idnumber;
    @Column(length=11)
    private String telephone;
    @Column(length=100)
    private String emailAddress;
    @Column(length=25)
    private String phone;
    @Column(length=100)
    private String workPlace;



然而我在前台输入值传回后台后,userid为null


最后就是报错

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.springapp.model.UserinfoEntity
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
	org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:868)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:231)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)



不知道为什么这样,求人解答

展开
收起
爱吃鱼的程序员 2020-06-09 13:09:27 609 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    你的ids列不是自动生成,而你的id不允许为空造成的回复 @Rogin:nullable=false是这个字段在保存时必需有值,不能还是null值就调用save,你的实体类没有取到userid,所以就报错了,你应该找找你为什么前台过来的数据把userid弄丢了,比如说ajax提交的时候把参数名写错了,打个断点进controller看看,到底是前台还是controller的问题,找到在哪把userid弄丢了,这个问题就解决了没太理解什么意思,是意思不能加nullable=false吗

    我的controller是这样写的

    因为我要做的是用户注册的功能,所以主键要自动生成,我前台表单没有userid值,本身就是想后台能自动生成ID的

    那问题这不是很明显,你的userid字段设置了nullable=fase,也就是说保存的时候userid必须要不为空,然后userid不是从前台传过来的,你也没手动set进去啊,
    2020-06-09 13:09:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多