实体类与数据库字段的映射常见错误(at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set)

严重: Servlet.service() for servlet springMVC threw exception
java.lang.IllegalArgumentException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:66)
	at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:583)
	at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:229)
	at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3822)
	at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:152)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982)
	at org.hibernate.loader.Loader.doQuery(Loader.java:857)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
	at org.hibernate.loader.Loader.doList(Loader.java:2533)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
	at org.hibernate.loader.Loader.list(Loader.java:2271)
	at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
	at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842)
	at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
	at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157)

原因:数据库字段值为NULL,int 类型不能赋值为NULL,只能为0,但有些实际应用中,如学生分数,0表示0分,NULL,则表示暂无分数所以,要不设数据字段不为NULL,要不就是用Integer.

时间: 2024-12-14 20:22:36

实体类与数据库字段的映射常见错误(at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set)的相关文章

实体类与数据库字段不匹配问题,java.sql.SQLSyntaxErrorException: Unknown column 'xxx' in 'field list'

控制台报错 ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column 'user_name' in 'field list' ### The error may exist in panfeng/mapper/StudentMapper.java (best guess) ### The error may involve panfeng.mapper.StudentMapper.se

Spring 注解实体类中非数据库字段属性

解决办法:在属性的get方法上加上一段注解标识它是临时属性,不是数据库字段就OK @Transient public List<Reverts> getChildList() { return childList; } public void setChildList(List<Reverts> childList) { this.childList = childList; } 记得导入的是:import javax.persistence.Transient;

蜗牛—实体类与数据表的映射文件

Hibernate框架可以根据你写的映射文件直接对你的实体类进行增删改查等等数据库操作.传入的可以是一个实体对象. 首先是我的实体类代码 Position.java package com.attence.entity; public class Position { private int id; private String position_Name; private String desc; public int getId() { return id; } public void se

YbSoftwareFactory 代码生成插件【十九】:实体类配合数据库表字段进行属性扩展的小技巧

实体类通常需要和数据库表进行了ORM映射,当你需要添加新的属性时,往往同时也需要在数据库中添加相应的字段并配置好映射关系,同时可能还需对数据访问组件进行重新编译和部署才能有效.而当你开始设计一个通用数据访问组件后,因为项目需求的不同和需求的不断变化演变,很难不能保证不会再添加额外的属性和字段.特别是项目部署运行后,添加一个属性和字段带来的额外维护的工作量可能要远远超过对代码进行调整的工作量.本文提供了属性字段扩展的一种思路,在满足核心字段可通过实体类强类型进行访问的同时,还可通过C# 4.0提供

hibernate插入实体类【数据库默认值】不生效的问题

第一个问题老生常谈 如果表结构设置默认值 数据库实体类不对该字段进行复制的情况下插入数据记录 字段直接以数据库设置的默认值进行插入hibernate本身可以根据XML配置进行生效此配置 1 <hibernate-mapping 2     package="*.entity"> 3     <class name="ProEntity" table="PRODUCTINFO" dynamic-insert="true&

实体类在set字段时报空指针异常

实体类在set字段时报空指针异常的原因: T_Entry entry=null;entry.setGeneName("1212");entry.setEntryName("ACLAM");text = product.text().toString();if(productName.toString().startsWith("<h2><strong>")){ entry.setEntryName(text); data.

redis存储对象,实体类新加字段空指针问题处理

redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的. 一般用缓存对象时,通过序列化存储,在实体类新加字段的时候,反序列化成对象是新加字段会为空,这个问题很容易被忽略,如果自己没有做好处理,上线会有大

model类中enum类型与数据库字段的映射

这个东西搞了好久,不难,但小细节没注意到一直不对,现在终于做出来了,赶紧记下. 下面是实体类User与对应的表user之间的映射: 1. 准备数据库表user SET NAMES utf8;SET FOREIGN_KEY_CHECKS = 0; -- ------------------------------ Table structure for `user`-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE T

使用generatorConfig工具自动生成mybatis的实体类以及dao接口和映射文件

1:数据准备 创建一个数据库表 1 CREATE TABLE `logininfo` ( 2 `id` BIGINT(20) NOT NULL AUTO_INCREMENT, 3 `username` VARCHAR(50) DEFAULT NULL, 4 `password` VARCHAR(200) DEFAULT NULL, 5 `state` TINYINT(4) DEFAULT NULL, 6 PRIMARY KEY (`id`) 7 ) ENGINE=INNODB DEFAULT C