首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

XML 映射文件mapper.xml

id 和 result 元素都将一个列的值映射到一个简单数据类型(String, int, double, Date 等)的属性或字段。...但有些情况下你想使用不可变类。 一般来说,很少改变或基本不变的包含引用或数据的表,很适合使用不可变类。 构造方法注入允许你在初始化时为类设置属性的值,而不用暴露出公有方法。...,并没有深度、广度或组合上的要求。...鉴别器(discriminator)元素就是被设计来应对这种情况的,另外也能处理其它情况,例如类的继承层次结构。 鉴别器的概念很好理解——它很像 Java 语言中的 switch 语句。...这是为了即使鉴别器的 case 之间都能分为完全独立的一组,尽管和父结果映射可能没有什么关系。

5.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    初识Hibernate之继承映射

    前面的两篇文章中,我们介绍了两张表之间的各种相互关联映射关系,但往往我们也会遇到两张表甚至多张表之间共有着多个相同的字段。...--指定鉴别器列的名称和类型--> type" type="java.lang.String"/> 的表名,鉴别器就是用来区分当前记录时student或是teacher的一个标记,它会在新表中生成一个字段,而该字段的名称和类型都在此处进行指定。...下面我们通过插入数据来看看具体生成的表的结构: 很明显,我们的person表只起到一个模板的效果并没有什么实际的价值,而我们students表和teachers表的id,name字段都是从person表中继承得到的...student和teacher表的主键作为外键关联父表的主键。

    82180

    11.4.7 鉴别器(结果集) -《SSM深入解析与项目实战》

    11.4.7 鉴别器(结果集) -《SSM深入解析与项目实战》 项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm 文章目录...11.4.7 鉴别器 使用鉴别器查询出Vehicle 11.4.7 鉴别器 MyBatis中的鉴别器,简单的可以理解为Java中的switch语句。...有时候一个单独的数据库查询可能返回很多不同数据类型的结果集(有些关联),鉴别器元素在MyBatis中就是被设计来处理这种情况的,还包括类的继承层次结构。鉴别器在实际项目中使用的不多,简单的介绍一下。...例如,有一个交通工具类Vehicle,另外还有子类,汽车Car和船Boat。Car和Boat分别继承了Vehicle类。在Vehicle中有一个type字段,用来区分交通工具类型。...根据type字段,在MyBatis中实现,将查询的Vehicle数据自动封装成不同的类型对象(Car或者Boat)。XML映射文件代码如代码清单11-40所示。

    26920

    MyBatis配置与使用-初入篇

    typeAlias里面type属性指向我们的用户实体类,alias属性用于定义它的替代名字。      ...他是一个对应SQL与实体类字段的配置。 在这里,我们配置了一个字段——>resultMap。      ...result 子节点:用于标识一些简单属性,其中 column 属性表示从数据库中查询的字段名或别名, property 属性则表示查询出来的字段对应的值赋给实体对象的哪个属性。...子节点说明: constructor - 用于注入结果到构造方法中 id – 标识ID列 result – 表示一般列 association – 关联查询 collection – 查询集合 discriminator...- 鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为 column属性是数据库的字段名,property是实体类的字段名,jdbcType是数据库字段类型

    22930

    mybatis 的一些常用功能

    1. association 查询结果的一对一关联: type="Blog"> <id property=”blog_id” column="id...(一):     有时一个单独的数据库查询也许返回很多不同(但是希望有些关联)数据类型的结果集。...鉴别器元素就是被设计来处理这个情况的,还有包括类的继承层次结构。鉴别器非常容易理 解,因为它的表现很像 Java 语言中的 switch 语句。    ...定义鉴别器指定了 column 和 javaType 属性。列是 MyBatis 查找比较值的地方。 JavaType 是需要被用来保证等价测试的合适类型(尽管字符串在很多情形下都会有用)。...根据时间表(比如 no Flush Interval,没有刷新间隔),缓存不会以任何时间顺序来刷新。     缓存会存储列表集合或对象(无论查询方法返回什么)的 1024 个引用。

    58180

    Hibernate Spring Java Persistence API EJB3 相关的术语及关键字

    字段 index 索引 sequence 序列 对应于数据库中的sequence unique 唯一的 nullable 可为空的 insertable 可插入的 updatable 可更新的...foreign key 外键/外关键字 foreign key column 外键列 association 关联 association column 关联列 join column 连接列...logical mapping 逻辑映射 physical mapping 物理映射 identity 标识(符) 能唯一标识一个对象的字段/列,对应到数据库一般为主键 Identifier 标识符...Versioning for optimistic locking 乐观锁定版本控制 transient 瞬态/瞬时的 这个词建议和具体的词组一起出现,单独出现似乎没有什么特别的意义 fetch...fetching 延时关联获取 projection 投影 ordinal 顺序的 portable application 可移植的应用 Class-defined 已定义类 Table

    90930

    .NET ORM 鉴别器 和 TDengine使用-SqlSugar

    一、鉴别器(Discrimator) 类似tdengine里面超级表概念, 他可以在一张表里面存储一个或者多个个性化字段,查询自动变成条件,并且插入更新都会自赋值进行存储 Discrimator ="Type...:1"//字段名字可以随便取 Discrimator ="Type:1,Name:a" //可以多个字段,不要有空格等 用例 [SugarTable("Animal",IsDisabledDelete...,包括Type分类字段 查询和插入 var cat = new Cat { Name = "Whiskers", Color = "Gray" }; db.Insertable(cat).ExecuteCommand...();//实体类中没有Type字段会自插入特性对应的Type=2 var catList=db.Queryable().ToList();//自动加上条件Type=1 var dogList...= db.Queryable().ToList();//自动加上条件Type=2 更新操作 直接更新就行了Type会忽略更新 鉴别器导航 在导航应用也可以用使,他的优势就是实体中不需要这个字段

    37520

    SqlAlchemy 2.0 中文文档(九)

    在所有情况下,对于给定行要实例化的最终类由基类上定义的鉴别器列或 SQL 表达式确定,该列将生成与特定子类关联的标量值。...注意 目前,整个继承层次结构只能配置一个鉴别器列或 SQL 表达式,通常在层次结构中最基本的类上。暂时不支持“级联”多态鉴别器表达式。...在层次结构中查询特定子类将呈现为针对基表的 SELECT 查询,其中将包括一个 WHERE 子句,该子句限制行为具有鉴别器列或表达式中存在的特定值或值的行。...在所有情况下,给定行的最终实例化类由基类上定义的鉴别器列或 SQL 表达式确定,该列将产生与特定子类关联的标量值。...注意 目前,整个继承层次结构仅可以配置一个鉴别器列或 SQL 表达式,通常在层次结构中最基本的类上。目前不支持“级联”多态鉴别器表达式。

    26710

    MyBatis魔法堂:ResultMap详解

    遍历ResultSet对象并将每行数据暂存到HashMap实例中,以结果集的字段名或字段别名为键,以字段值为值   3. 根据ResultMap标签的type属性通过反射实例化领域模型   4....属性说明 id属性 ,resultMap标签的标识。 type属性 ,返回值的全限定类名,或类型别名。...动态映射关系信息     通过 discriminator子元素 (鉴别器)可以实现动态映射关系信息的设置。...id元素,result元素,idArg元素,arg元素,discriminator元素的共同属性 javaType属性 :Java类的全限定名,或别名 jdbcType属性 :JDBC类型, JDBC...类型为CUD操作时列可能为空时进行处理 typeHandler属性 :指定类型处理器的全限定类名或类型别名 column属性 :指定SQL查询结果的字段名或字段别名。

    1.2K70

    Mybais映射文件笔记----查询

    期望类型的类的完全限定名或别名,注意如果是集合,应该是集合可以包含的类型而不是集合本身的类型。...-- 使用association定义关联的单个对象的封装规则;-->     type="com.atguigu.mybatis.bean.Employee" id="MyDifEmp2...-- association定义关联对象的封装规则              select:表明当前属性是调用select指定的方法查出的结果              column:指定将哪一列的值传给这个方法...--嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则  -->     type="com.atguigu.mybatis.bean.Department...--         鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为

    77530

    加速你的Hibernate引擎(上) 转

    主要的缺点整个类层次中的所有属性都挤在一张大表里,如果有很多子类特有的属性,数据库中就会有太多字段的取值为null,这为当前基于行的数据库(使用基于列的DBMS的数据仓库处理这个会更好些)的SQL调优增加了难度...; 优点包括数据表比较紧凑(没有不需要的可空字段),数据跨三个子类的表进行分区,容易使用超类的表与其他表进行关联。...因为不能跨超类和子类的字段来建立复合索引,如果需要按这些列进行查询,性能会受影响。任何子类数据的修改都涉及两张表:超类的表和子类的表。...“每个类层次一张表”对有高并发、简单查询并且没有共享列的OLTP系统来说是个不错的选择。如果你想用数据库的引用完整性来做关联,那它也是个合适的选择。...“每个具体类一张表”对有高并发、复杂查询并且没有共享列的OLTP系统来说是个不错的选择。当然你不得不牺牲超类与其他类之间的关联。

    62330

    Mybatis Mapper.xml 配置文件中 resultMap 节点的源码解析

    type:表示其对应的pojo类型,可以使用别名,也可以使用全限定类名 autoMapping:如果设置这个属性,MyBatis 将会为这个 ResultMap开启或者关闭自动映射。...^^ 接下来看下它可以有哪些子节点: constructor - 用于注入结果到构造方法中 id – 标识ID列 result – 表示一般列 association – 关联查询 collection...– 查询集合 discriminator - 鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为 constructor 在查询数据库得到数据后,会把对应列的值赋值给...javabean 对象对应的属性,默认情况下 mybatis 会调用实体类的无参构造方法创建一个实体类,然后再给各个属性赋值,如果没有构造方法的时候,可以使用 constructor 节点进行绑定,如现有如下的构造方法...discriminator 鉴别器,mybatis可以使用 discriminator判断某列的值,然后根据某列的值改变封装行为,有点像 Java的 switch 语句,鉴别器指定了 column 和

    2.1K40

    Mybatis动态SQL

    但有些情况下你想使用不可变类。 通常来说,很少或基本不变的、包含引用或查询数 据的表,很适合使用不可变类。 构造方法注入允许你在初始化时 为类设置属性的值,而不用暴露出公有方法。...---- discriminator鉴别器 有时一个单独的数据库查询也许返回很多不同 (但是希望有些关联) 数据类型的结果集。 鉴别器元素就是被设计来处理这个情况的, 还有包括类的继承层次结构。...如果没有传入“sname”,那么只会查询sid相匹配的记录;反之若传入了“sname”,那么就会增多一个“sname”字段的匹配条件(细心的读者可能会发现,“title”参数值是可以包含一些掩码或通配符的...而且,若语句的开头为“AND”或“OR”,where 元素也会将它们去除。 如果 where 元素没有按正常套路出牌,我们可以通过自定义 trim 元素来定制 where 元素的功能。...当某个列存在null值的话,我们使用数据库的内置函数进行求和、统计之类的操作时,可能会刚好操作的记录的同一个字段都是null,那么返回的结果集就会是null。

    2.1K10

    01-EF Core笔记之创建模型

    数据标注方式比较简单,在类或字段上添加特性标注即可,对实体类型有一定的入侵。...,显然无论在Blog或Tag中定义外键都不合适,此时就需要一张关系表来进行关联,这张表就是BlogTag表。...继承 关于继承关系如何在数据库中呈现,目前有三种常见的模式: TPH(table-per-hierarchy):一张表存放基类和子类的所有列,使用discriminator列区分类型,目前EF Core...仅支持该模式 TPT(table-per-type ):基类和子类不在同一个表中,子类对应的表中仅包含基类表的主键和基类扩展的字段,目前EF Core不支持该模式 TPC(table-per-concrete-type..."Discriminator") .HasMaxLength(200); EF Core允许我们通过FluentAPI的方式自定义鉴别器的列名和每个类对应的值: modelBuilder.Entity

    3.1K20
    领券