Hibernate中遇到的 NullPointerException问题和IllegalArgumentException
2017-06-06 18:49
513 查看
在自己新学Hibernate的时候,对于配置文件中的各个属性,还不是很熟悉。
对于要多敲代码的程序员来说,这个低级错误也许是好的。
在我进行Hibernate中多对多表格的级联操作的时候,进行JUnit单元测试,然后出现了以下的问题,自己也捣鼓了很久时间才终于发现问题的所在。
建表用到两个实体类,分别是User.java和Role.java,所对应的配置文件就是User.hbm.java和Role.hbm.java。
配置文件的代码如下(Role.hbm.xml):
如果在class标签中的 name属性,没有写上对应实体类的全路径,而是写了其它,就会出现了错误"NullPointerException" 的错误
错误代码:在User.hbm.xml文件中,class 中name标签的属性值为 cn.itcast.manytomany.Role,这样运行时就会出现空指针错误。
将属性值修改为对的内容之后,就可以正常运行。
代码还是同一段,在<set> 标签中,可以输入one-to-many或者 many-to-many标签,在其中的class标签属性值里,是填写与之关联的对象的全路径。
如果在这个路径中写错时,就会出现IllegalArgumentException错误了。
配置文件的代码如下(User.hbm.xml):
上面的代码中<many-to-many>标签中class的属性值写成了 "cn.tcast.manytomany.User",运行后就 会出现此错误了。
这里只是举了例子,相信在其它的地方也会出现类似的错误,到时再根据类似的情况来角色。
说这此都是低级错误,但是对于自己刚学,在网上也没找到解决方法时,难免会有点心情不畅。
但在自己发现了问题并解决了之后,就像是豁然开朗。所以有很多事情要生存坚持,不要被小小的问题难倒了。
对于要多敲代码的程序员来说,这个低级错误也许是好的。
在我进行Hibernate中多对多表格的级联操作的时候,进行JUnit单元测试,然后出现了以下的问题,自己也捣鼓了很久时间才终于发现问题的所在。
1.NullPointerException错误
这个错误可能会在很多地方有,但是我这次的出现的是在配置文件中的配置错误所导致的。建表用到两个实体类,分别是User.java和Role.java,所对应的配置文件就是User.hbm.java和Role.hbm.java。
配置文件的代码如下(Role.hbm.xml):
<class name="cn.itcast.manytomany.Role" table="t_role"> <id name="role_id" column="role_id"> <generator class="native"></generator> </id> <property name="role_name" column="role_name" ></property> <property name="role_desc" column="role_desc"></property> <set name="userSet" table="user_role"> <!-- 第三张表的配置 key:要与用户表中的外键名称一致,否则会没法关联 --> <key column="role_id" ></key> <!-- class:是关联配置表的实体类文件的全路径 column:第三张表的外键名称 --> <many-to-many class="cn.itcast.manytomany.User" column="user_id"></many-to-many> </set> </class>
如果在class标签中的 name属性,没有写上对应实体类的全路径,而是写了其它,就会出现了错误"NullPointerException" 的错误
错误代码:在User.hbm.xml文件中,class 中name标签的属性值为 cn.itcast.manytomany.Role,这样运行时就会出现空指针错误。
将属性值修改为对的内容之后,就可以正常运行。
2.IllegalArgumentException
这个错误是指出现了 非法争议的表达式。代码还是同一段,在<set> 标签中,可以输入one-to-many或者 many-to-many标签,在其中的class标签属性值里,是填写与之关联的对象的全路径。
如果在这个路径中写错时,就会出现IllegalArgumentException错误了。
配置文件的代码如下(User.hbm.xml):
<class name="cn.itcast.manytomany.User" table="t_user"> <id name="user_id" column="user_id"> <generator class="native"></generator> </id> <property name="user_name" column="user_name" ></property> <property name="user_password" column="user_password"></property> <set name="roleSet" table="user_role" cascade="save-update,delete"> <!-- key标签里面配置 是当前 的映射文件在第三张表的外键名称 --> <key column="user_id"></key> <!-- many-to-many中,class是与外键关联表的实体类的全路径 column:角色在第三张表的外键名称 --> <many-to-many class="cn.itcast.manytomany.User" column="role_id"></many-to-many> </set> </class>
上面的代码中<many-to-many>标签中class的属性值写成了 "cn.tcast.manytomany.User",运行后就 会出现此错误了。
这里只是举了例子,相信在其它的地方也会出现类似的错误,到时再根据类似的情况来角色。
说这此都是低级错误,但是对于自己刚学,在网上也没找到解决方法时,难免会有点心情不畅。
但在自己发现了问题并解决了之后,就像是豁然开朗。所以有很多事情要生存坚持,不要被小小的问题难倒了。
相关文章推荐
- 问题:java.lang.IllegalArgumentException:the bind value at index is null
- 启动Tomcat时遇到的 java.lang.IllegalArgumentException: Can't convert argument: null 异常
- jmeter3.2生成图形html遇到的问题Error in NonGUIDriver java.lang.IllegalArgumentException: Results file:log is not empty
- solr定时更新索引遇到的问题(SolrDataImportProperties Error loading DataImportScheduler properties java.lang.NullPointerException)
- hibernate 的many to one 的问题IllegalArgumentException occurred while calling setter of hibernatePOJO
- Hibernate异常IllegalArgumentException: node to traverse cannot be null!
- 在使用DataBinding中遇到的一个奇葩的 java.lang.NullPointerException问题
- java.lang.IllegalArgumentException: pointerIndex out of range 问题的两种解决办法
- 启动Tomcat时遇到的 java.lang.IllegalArgumentException: Can't convert argument: null 异常
- ViewPager中做图片缩放遇到:java.lang.IllegalArgumentException: pointerIndex out of range
- ArithmeticException,IllegalArgumentException,NullPointerException,BufferUnderflowException
- java.lang.IllegalArgumentException:pointerIndex out of range问题的两种解决办法
- eclipse部署项目时,启动tomcat遇到Java.lang.IllegalArgumentException: Can't convert argument: null
- java.lang.IllegalArgumentException: node to traverse cannot be null! HQL语法问题
- Cookie保存信息时遇到的问题java.lang.IllegalArgumentException
- android7.0 uri转图片路径遇到的问题:java.lang.IllegalArgumentException: column '_data' does not exist
- 开发中常遇到到的问题一:java.lang.NullPointerException
- ILJMALL project过程中遇到Fragment嵌套问题:IllegalArgumentException: Binary XML file line #23: Duplicate id
- android开发中遇到的问题解决之RelativeLayout执行measure(w,h)方法时,出现NullPointerException的异常情况
- 启动Tomcat时遇到的 java.lang.IllegalArgumentException: Can&#39;t convert argument: null 异常