hibernate中使用annotation映射的时候,如何指定实体类中的某些字段不映射到数据库?

hibernate中使用annotation映射的时候,如何指定实体类中的某些字段不映射到数据库?,第1张

可以, 但是对于同一个实体的两种配置方式不能同时使用。 参见hibernate 帮助:Note that you can mix the legacy hbm.xml use and the annotation approach. The resource element can be either an hbm file or an EJB3 XML deployment descriptor.你可以混用 hbm.xml 和注解方式。 资源说明可以使用 hbm方式,也可以使用 EJB3 XML方式。You can however not declare a class several times (whether annotated or through hbm.xml). You cannot mix configuration strategies (hbm vs annotations) in an entity hierarchy either.但是,你不能说明一个类多次,不管是注解还是配置文件方式。 在同一个实体层次(entity hierarchy)中也不能混用两种配置策略(文件与注释)。如果一个包中有了类注解,而不想用, 调整 packageToScan的设置吧。个人来说, 还是使用注解方式吧,毕竟离代码最近,容易维护。 如果是一些运行时需要维护的东东,放到配置文件中,并在注解中使用吧。 需要运行时配置不是不采用注解的理由。

以下是mybatis忽略映射字段的方法:

@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。

@TableField(exist = true):表示该属性为数据库表字段。

@TableName:数据库表相关

@TableId:表主键标识

@TableField:表字段标识

@TableLogic:表字段逻辑处理注解(逻辑删除)

扩展资料

mybatis---属性和字段映射:

1、查询时使用别名,别名和属性名保持一致

<select id="getUser" parameterType="int" resultType="com.skd.mybits.domain.User">

select id_dif id, name_dif name, age_dif age from users where id=#{id}  

</select>

别名和属性名保持一致。

2、通过resultMap标签映射字段名和属性名的关系

<!-- type:表示实体类的全限定类名  id:通过id其他标签可引用该标签-->

  <resultMap type="com.skd.mybits.domain.User" id="userResultMap">

      <!-- id 标签映射主键字段 -->

      <id property="id_dif" column="id"/>

      <!-- result 标签映射其他字段 -->

      <result property="id_dif" column="id"/>

  </resultMap>

数据没有处理好

所谓实体类与数据库之间的映射,其实就是在java中创建一个类,用来存放数据库里的某一张表。

但是,如果只是在纯粹的桌面端与web端开发中,没有使用到框架的化,其实字段与属性之间的映射要求并没有那么严格。但是,使用MyBatis框架之后,对于字段与属性之间的关系,是十分严格的。

_ 当实体类与数据库存在部分字段无法正确映射时,可以使用ResultMap作为中间组件,将数据库的字段映射给实体类


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6672353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存