实体类的配置文件属性都配的不一样,不报错的?

实体类的配置文件属性都配的不一样,不报错的?

http://img1.sycdn.imooc.com//climg/5d664cc800010c3516480643.jpg

搞不懂你们,在Person类中直接定义的是Dept对象,xml文件中property又配置deptId,都不会报错的嘛?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
芝芝兰兰 2019-08-29 19:20:50

同学你好。首先是标红的问题,不同版本的IDEA的安全级别是不一样的,所以可能只有同学的标红。

这样写是不影响运行的。因为这里数据库表的列只能是integer类型的,这一行对应的不是实体类中的Department属性,而是数据库表中的dept_id。同学可以试一下即使是将这里改为dept是会报错哦~

<mapper>不能直接通过<result>设置一个引用型的属性值。如果是链表查询的话,会通过<association>将联表查询的结果集中的列,与Department类的某些属性对应,从而给dept属性赋值。

祝学习愉快~

芝芝兰兰 2019-08-28 19:23:42

同学你好。并不会报错,这里是通过deptId和Dept类相关联的。

数据库的字段名不是必须和实体里的属性名对应的。因为person表里就只有dept_id,<result>中的column属性是表的字段名,property属性是Department类的名字,因为数据库里不能直接存Department类型的对象,所以这里是通过部门id去找和部门的对应关系的。

如果解答了同学的疑问,望采纳~

祝学习愉快~


  • 提问者 慕圣1068954 #1
    你刚刚自己也说了 ,property属性是Department类的名字吧?,那你告诉我,<result column="dept_id" property="deptId" jdbcType="INTEGER"/>,这一行,是想说Department类的名字是的deptId嘛?这里明明就是写错了,而且idea也会报红色error警告,只是后面select语句中,没有关联Department查询,所以程序运行不报错而已。
    2019-08-29 09:32:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师