- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
MyBatis 映射问题。
假设我们有一个表 USERS
CREATE TABLE USERS(
USER_ID int(10) NOT NULL AUTO_INCREMENT,
LOGIN varchar(100) NOT NULL,
EMAIL varchar(255),
SALARY int(10),
AVG_SCORE int(10),
PRIMARY KEY ( USER_ID )
);
有 3 个 POJO 类 -
public class User {
private Long id;
private String login;
private String email;
...getters/setters
}
还有两个扩展 User 的类
public class Student extends User {
private Integer score;
...getters/setters
}
public class Teacher extends User {
private Integer salary;
...getters/setters
}
和一个映射器(我使用 XML,但实际上这并不重要)。
<select id="selectAll" resultMap="<dynamicResultMapHere>">
SELECT * FROM USERS
<some conditions here>
</select>
我想要List<Teacher>
或List<Student>
实例取决于 SALARY 列是否为空。
如何添加动态结果填充?
其实情况更复杂。我不知何故需要根据查询参数返回不同的结果。
最佳答案
检查documentation关于鉴别器。它将需要 resultMap
对于Student
的特定领域和Teacher
由 resultMap
引用对于 User
(对于公共(public)字段)和 <discriminator>
部分。
可能需要伪列:
SELECT (CASE WHERE salary IS NULL THEN 1 ELSE 2 END) AS userType
然后
<discriminator javaType="int" column="userType">
<case value="1" resultMap="studentResultMap" />
<case value="2" resultMap="teacherResultMap" />
</discriminator>
关于java - MyBatis 动态 ResultMap。如何返回不同POJO对象的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43806392/
我在 iBatis 中有几个嵌套的 ResultMaps,它们具有完全相同的数据库列名。这会导致歧义,并导致为不同的数据库表检索到不正确的结果。 例如,`
有没有办法在单个查询中多次重用同一个 resultMap。 例如,假设我有一个“foo”结果映射: 有没有办法定义另一个 resultMap 来对不同的列重用上述内容?类似...
我一直在尝试让 iBatis 返回 POJO 列表,如下链接所示: http://www.java2s.com/Code/Java/J2EE/GetListOfObjects.htm 我得到的返回是一
我使用 MyBatis Generator 生成 JavaBean 和 Mapper.xml。 但是 Mapper.xml 与我预期的不同。 Mapper.xml 包含两个 resultMap,Bas
你好 StackOverflowers, 关于 MyBatis resultMap 有一些我不明白的地方。 我正在处理的模型正在更新。我们决定创建一个新的对象图来反射(reflect)我们 futur
我实际上正在测试mybatis。我真的很喜欢,但是,我想更深入,但我在 resultMap 方面遇到了问题。 实际上我只是想从数据库中获取一个计算机对象,它由多个屏幕和一个塔组成(我代码的另一个对象)
我设置了一个 resultMap,其中包含许多结果元素。我希望能够设置一个常量作为结果之一。所以而不是 我希望能够确保该名称将作为字符串“Joe”返回。在理想的情况下,我会更改查询以返回此常量,但不
我的域模型中有一对多关系,我基本上想使用一个 MyBatis select 语句读取 Foos 和一组经过过滤的 Bars Bars 的嵌套选择。 解释一下:我的域模型类看起来或多或少像这样(当然真正
MyBatis 映射问题。 假设我们有一个表 USERS CREATE TABLE USERS( USER_ID int(10) NOT NULL AUTO_INCREMENT, LOGI
有人可以帮助澄清 MyBatis 文档中定义的重命名属性/列吗? MyBatis 文档 文档定义了一个简单的Java类: public class User { private int id;
我在 google 或 stack 上看到这个问题的描述非常奇怪。让我解释。 我在接口(interface)方法的注释中有结果映射。只有在这种特殊情况下我才需要动态查询,这就是我决定在 xml 文件中
有一些代码使用了 Ibatis 2.3,我有一个类 User 和一个 resultMap 如下: public class User { private Integer id; private
Mapper.xml SELECT product.id, product.code, product.descrip
我正在尝试创建一个将填充vehicleVO的结果 map 。我想将几列映射到vehicleDocuments HashMap。我要填充的数据也存在于同一个表中。 public class Vehicl
我在 Java 中使用 MyBatis。我可以在结果映射中使用多个 id 吗? 代码 我的结果 Java 类如下所示: public class MyClass { private int i
我似乎找不到将结果 map 作为 map 获取的方法 我的 sql 是 SELECT CONCAT(SCE_WRK_CTRL_NB, AC_CRR_CDE) as row_id, M
我想重新使用来自不同 *Mapper.xml 文件的特定文件,这些文件都以某种方式读取相同的对象。 我有一个名为 Project 的数据库表,我为它创建了以下 resultMap:
我的项目被 Checkmarx 扫描,所有 Mybatis xml 文件都显示相同的风险:异常处理不当。 报告说每个 resultMap 代码都像这样 可能会抛出预期的异常,应该包裹在 try-cat
我有一个映射器resultMap,它有两个我需要内联选择的集合 这两个集合的查询完全相同,但生成的 map 却截然不同。有没有办法可以将相同的选择与两个不同的 resultMaps 一起使用? 我
我想在 iBatis 查询中为参数映射传递一组字符串,并为结果集返回一个字符串集合。 这可能吗? 示例查询 ... SELECT * FROM some_table t WHERE t.some_co
我是一名优秀的程序员,十分优秀!