2 cai772088996 cai772088996 于 2016.03.20 22:10 提问

JAVA问题:hibernate测试多对一的save时,报异常

图片说明

图片说明

图片说明

图片说明

然后测试就红条报了个异常,提示id是非法属性?o(╯□╰)o
图片说明

1个回答

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.03.20 22:27
已采纳

类定义时,你的id属性定义的为Long类型,所以对应的配置文件属性映射也应该指定数据库类型为long才行。
试试修改配置文件中的id属性,如下:

  <id name="id" column="id" type="long">  
            <generator class="native"/>  
    </id>  
wojiushiwo945you
wojiushiwo945you 谢谢,我也学习了!
一年多之前 回复
cai772088996
cai772088996 回复毕小宝: 很简单的错,一开始没理解到,Product中外键字段应该写private ProductDir dir,而不是之前的Long dir,把这个改了,其他get/set之类的跟着一块改改,就没问题了....
一年多之前 回复
wojiushiwo945you
wojiushiwo945you 你先去掉关联关系的属性配置,看看能不能正确保存,如果能的话在对比这个帖子看看映射关系的配置,对比下看看哪有问题。祝你好运!
一年多之前 回复
cai772088996
cai772088996 回复毕小宝: 好的哈,明天解决了,我再给你分享一下....O(∩_∩)O
一年多之前 回复
wojiushiwo945you
wojiushiwo945you 回复cai772088996: 如果还是不对的话,那就研究下这个帖子吧。http://forum.spring.io/forum/spring-projects/web/72792-illegalargumentexception-in-class-domain-right-getter-method-of-property-id
一年多之前 回复
cai772088996
cai772088996 回复毕小宝: 不行毕神...肯定是保存了的,而后我都把eclipse关了再重启了.....
一年多之前 回复
wojiushiwo945you
wojiushiwo945you 回复cai772088996: 那你保存代码,重新clean下项目,再试试。
一年多之前 回复
cai772088996
cai772088996 毕神,改了还是那个报错,我看了下笔记,我记得是“column代表数据库中的列名,如果没配置,默认使用name的值做为列名”,type我没记,但我貌似记得老师讲的是type如果没配,也会默认为id的类型Long,对吧
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!