java.lang.IllegalArgumentException: Can not set int field *** to null value

在SSH项目中使用基本数据类型的实体类字段可能导致数据库查询异常,特别是当数据库字段值为null时。这是因为Hibernate在进行实体bean的set操作时无法处理null值。解决方法是避免使用基本数据类型,转而使用其对应的包装类。

在ssh 项目中 如果某个实体类 的字段属性为 基本数据类型,那么要注意对应的数据库中该属性 值不能为null 否则,在做相关查询时 会报该异常,具体的原理就是:hibernate 通过实体bean的set 为实体ben属性赋值

解决办法:字段属性不要为基本数据类型。

HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 Can not set java.util.Date field com.yyq.entity.Admin.createtime to java.time.LocalDateTime 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 java.lang.IllegalArgumentException: Can not set java.util.Date field com.yyq.entity.Admin.createtime to java.time.LocalDateTime java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167) java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171) java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81) java.base/java.lang.reflect.Field.set(Field.java:799) com.yyq.util.DBUtil.setEntityField(DBUtil.java:118) com.yyq.util.DBUtil.executeQuery(DBUtil.java:79) com.yyq.dao.AdminDao.login(AdminDao.java:56) com.yyq.servlet.AdminServlet.doPost(AdminServlet.java:46) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:590) jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ):注意 主要问题的全部 stack 信息可以在 server logs 里查看 Apache Tomcat/10.1.42package com.yyq.entity; import lombok.Data; import java.util.Date; /** * @Author 写你的名字 * @Date 2025/9/24 上午11:50 (可以根据需要修改) * @Version 1.0 (版本号) */ @Data public class Admin { private Integer adminId; private String account; private String password; private String tel; private String nickName; private String icon; private Date createtime; private String delflag; private Integer pageCount; }
最新发布
09-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值