sql语法- MyBatis 中 <association> 标签的作用 1对1的情况
之前我们都是普通查询, 现在我们有个疑问如果出现下面的定义的model 数据库能直接查询么, 就是sql查询出来能够映射 对象作为另外一个对象的属性// 主对象publicclassProjInfoModel{privateLongprojId;privateStringprojName;privateProjAppInfoModelprojAppInfoModel;// 关联对象// getters / setters}// 子对象publicclassProjAppInfoModel{privateStringpreMoney;privateStringpostMoney;privateStringinveRole;privateStringinveType;privateStringsumActualPayAmount;privateDatestartDate;// getters / setters}resultMap idProjInfoResulttypecom.purvar.petou.ei.model.ProjInfoModelidcolumnPROJ_IDpropertyprojId/resultcolumnPROJ_NAMEpropertyprojName//resultMapresultMap idProjInfoResultInternaltypecom.purvar.petou.ei.model.ProjInfoModelextendsProjInfoResultassociation propertyprojAppInfoModeljavaTypecom.purvar.petou.ei.model.ProjAppInfoModelcolumnPROJ_ID!-- 这里其实不用于查询仅作逻辑分组 --resultcolumnPRE_MONEYpropertypreMoney/resultcolumnPOST_MONEYpropertypostMoney/resultcolumnINVE_ROLEpropertyinveRole/resultcolumninve_typespropertyinveType/resultcolumnSUM_ACTUAL_PAY_AMOUNTpropertysumActualPayAmount/resultcolumnSTART_DATEpropertystartDatejdbcTypeTIMESTAMP//association/resultMapselectidselectProjInfoWithAppresultMapProjInfoResultInternalSELECTp.PROJ_ID,p.PROJ_NAME,a.PRE_MONEY,a.POST_MONEY,a.INVE_ROLE,a.inve_types,a.SUM_ACTUAL_PAY_AMOUNT,a.START_DATEFROMproject_info pLEFTJOINproject_app_info aONp.PROJ_IDa.PROJ_IDWHEREp.PROJ_ID#{projId}/selectProjInfoModelprojnewProjInfoModel();proj.setProjId(1001L);proj.setProjName(AI项目);ProjAppInfoModelappnewProjAppInfoModel();app.setPreMoney(500万);app.setPostMoney(600万);app.setInveRole(领投);app.setInveType(VC);// ...proj.setProjAppInfoModel(app);// 自动注入我们仔细的看下查询 首先使用了 resultMap , 映射类型都是type“com.purvar.petou.ei.model.ProjInfoModel” 第二个resultMap 有个 extends“ProjInfoResult” 就是继承了第一个resultMap 的所有属性,应该也可以合写为什么需要 javaTypeMyBatis 在运行时通过反射创建对象。当你在 中定义一个嵌套对象如 projAppInfoModel时MyBatis 无法仅从字段名推断出该对象的具体类型尤其是当属性是接口、抽象类或泛型时。因此必须通过 javaType 明确告知即使 MyBatis 能自动推断类型显式写出 javaType 仍然是推荐做法原因包括提高代码可读性XML 配置自包含无需跳转到 Java 类查看类型。避免潜在错误防止因字段类型变更如改为接口导致运行时异常。兼容性保障不同 MyBatis 版本对类型推断的实现可能有差异。

相关新闻

打造你的终极数字伙伴:用DyberPet桌面宠物框架重新定义桌面互动体验

打造你的终极数字伙伴:用DyberPet桌面宠物框架重新定义桌面互动体验

打造你的终极数字伙伴:用DyberPet桌面宠物框架重新定义桌面互动体验 【免费下载链接】DyberPet Desktop Cyber Pet Framework based on PySide6 项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet 你是否厌倦了单调的桌面背景?是否渴望…

2026/7/3 17:25:54 阅读更多 →
PIC18F8722外部EEPROM存储扩展实战指南

PIC18F8722外部EEPROM存储扩展实战指南

1. 为什么需要外部EEPROM存储扩展在嵌入式系统开发中,PIC18F8722这类微控制器自带有限的内部存储空间。以PIC18F8722为例,其内部EEPROM容量仅为1024字节(1KB),这对于需要存储大量配置参数、历史数据或日志记录的应用场…

2026/7/3 17:21:52 阅读更多 →
高效低查重!AI教材生成工具助力教师轻松完成教材编写

高效低查重!AI教材生成工具助力教师轻松完成教材编写

谁没有在编写教材时感到困惑呢? 面对一页空白的文档,沉思了半个多小时,知识点的整理似乎毫无头绪——是先讲解基本概念,还是先分享案例呢?章节的划分该按照逻辑、还是依据课时呢?不断修改的大纲总是无法符…

2026/7/3 17:21:52 阅读更多 →

最新新闻

大模型能力边界:为什么它适合当守门员却不胜任中场核心

大模型能力边界:为什么它适合当守门员却不胜任中场核心

1. 项目概述:一场用足球隐喻解构大模型能力边界的实验“如果让大模型踢苏超,DeepSeek只能当守门员”——这个标题一出来,我手里的咖啡杯差点没拿稳。不是因为荒诞,恰恰是因为太准。它像一把手术刀,精准切开了当前大语言…

2026/7/3 18:12:11 阅读更多 →
LAMMPS-8卡GPU测试环境搭建

LAMMPS-8卡GPU测试环境搭建

说明该环境是基于 Ubuntu 22.04.5 系统,主要内容是LAMMPS基本环境的搭建①编译测试包是我个人经验,可能有许多缺陷,并不能完全符合实际物理需求(也希望大大们多指点一下)②本文章并没有输入文件的内容,因为…

2026/7/3 18:10:11 阅读更多 →
SnapLogic 推出 MCP Builder:无需代码,加速企业 AI 应用落地!

SnapLogic 推出 MCP Builder:无需代码,加速企业 AI 应用落地!

MCP Builder:加速 AI 落地的利器 SnapLogic 宣布 MCP Builder 已在其平台全面推出。这是一款基于模板的工具,能将现有的集成管道转化为支持代理的模型上下文协议(MCP)服务器,助力企业更快地将 AI 投入实际应用。 直击痛…

2026/7/3 18:10:11 阅读更多 →
Agent Runtime 正在 commoditize:从 Session 事件日志到托管式智能体运行时

Agent Runtime 正在 commoditize:从 Session 事件日志到托管式智能体运行时

1. 这不是新赛道,而是 runtime 层的“操作系统时刻”正在重演你打开手机看到新闻标题《Anthropic Just Shipped the Layer That’s Already Going to Zero》,第一反应可能是:又一个大模型公司搞出了什么黑科技?但如果你真花十分钟…

2026/7/3 18:08:10 阅读更多 →
实训项目完整文档|SpringBoot+MySQL 图书管理系统项目说明

实训项目完整文档|SpringBoot+MySQL 图书管理系统项目说明

文章标签#SpringBoot 图书管理系统 #Java 实训项目 #图书管理系统文档 #前后端交互项目 #MySQL 数据库设计正文一、前言本次分享一套完整可直接上交实训作业的图书管理系统项目说明书,项目基于 Java SpringBoot MySQL8.0 HTML/CSS/JS 开发,是高校计算机…

2026/7/3 18:08:10 阅读更多 →
MC74HC165A与PIC18LF26K80的SPI扩展输入方案

MC74HC165A与PIC18LF26K80的SPI扩展输入方案

1. 为什么需要MC74HC165A与PIC18LF26K80的组合在工业控制和嵌入式系统中,我们经常遇到需要监控大量开关量输入的场景。传统做法是为每个开关分配一个GPIO引脚,当系统需要监测32个甚至64个开关状态时,这种方案会迅速耗尽微控制器的引脚资源。我…

2026/7/3 18:08:10 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻