<resultMap id="activityUserMap" type="com.powernode.crm.workbench.domain.Activity"> <!-- org.apache.ibatis.type.JdbcType--> <id property="id" javaType="java.lang.String" column="id" jdbcType="VARCHAR"/> <result property="owner" javaType="string" column="owner" jdbcType="VARCHAR"/> <association property="user" javaType="com.powernode.crm.settings.domain.User" column="owner" select="com.powernode.crm.settings.dao.UserDao.findUserByOwner"/> </resultMap>
这是一个 MyBatis 的 resultMap,用于将查询结果映射到 Activity 对象上。其中,id、owner 分别映射到 Activity 对象的 id、owner 属性上,user 则是一个关联对象,需要通过 owner 属性去查询对应的 User 对象,并将其映射到 Activity 对象的 user 属性上。具体查询逻辑由 select 属性指定。
报org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
该异常通常是因为MyBis无法找到映射文件中定义的SQL语句。可能的原因是映射文件中的命名空间或SQL语句ID与Jav代码中的Mapper接口或XML文件中的Mapper标签不匹配。\n\解决方法如下:\1.检查Mapper接口或XML文件中的命名空间是否与映射文件中的命名空间匹配。\2.检查Mapper接口或XML文件中的SQL语句ID是否与映射文件中的SQL语句ID匹配。\3.检查映射文件中是否存在SQL语句的定义。\n```jav//示例代码//检查Mapper接口或XML文件中的命名空间是否与映射文件中的命名空间匹配@Mapper\publi interf NewsDetaiMapper {\ Lis
<select id="selectOneById" resultMap="BaseResultMap"> SELECT slor_no, triggered_count, item_count, info_count, began_at, ended_at, duration, device_label, purpose, merge_record_no, remarks, operator, -- operator_user_id, region_id, created_at, created_by, updated_at, updated_by FROM erp_warehouses_slor WHERE slor_no = #{recordNo} LIMIT 1; </select>,merge_record_no是JSON字符串数组类似["202301632", "202301631"],但是查找出来为null,帮我改为正确写法
如果 merge_record_no
是一个 JSON 格式的字符串数组,那么可以使用 MySQL 的 JSON_EXTRACT()
函数来提取其中的值。修改 SQL 语句如下:
SELECT slor_no,
triggered_count,
item_count,
info_count,
began_at,
ended_at,
duration,
device_label,
purpose,
JSON_EXTRACT(merge_record_no, '$[0]') AS merge_record_no_1,
JSON_EXTRACT(merge_record_no, '$[1]') AS merge_record_no_2,
remarks,
operator,
region_id,
created_at,
created_by,
updated_at,
updated_by
FROM erp_warehouses_slor
WHERE slor_no = #{recordNo}
LIMIT 1;
上面的 SQL 语句中,使用 JSON_EXTRACT()
函数来提取 merge_record_no
字段中的第一个和第二个元素,分别表示为 merge_record_no_1
和 merge_record_no_2
。如果你的 JSON 数组中的元素个数可能会更多,那么可以继续增加类似 $[2]
、$[3]
的语句来提取更多的元素。
相关推荐
















