Jpa Mybatis-plus 忽略某字段的持久化且不作为SQL语句的字段

通过@Transient注解可以将该字段不持久化至数据库表中,而通过@TableField(exist = false)注解可以让Mybatis-plus忽略该字段,不将其作为SQL语句中的字段。
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@TableName(value = "camera")
public class Camera {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @TableId(value = "c_id")
    private Integer cid;      // 设备ID

    @Column(name = "c_name")
    @TableField(value = "c_name")
    private String cameraName;     // 设备名称

    @Column(name = "c_ip")
    @TableField(value = "c_ip")
    private String cameraIp;       // 设备IP

    @Column(name = "c_port")
    @TableField(value = "c_port")
    private String cameraPort;     // 设备端口

    @Column(name = "c_username")
    @TableField(value = "c_username")
    private String cameraUsername; // 设备用户名

    @Column(name = "c_password")
    @TableField(value = "c_password")
    private String cameraPassword; // 设备密码

    @Column(name = "c_longitude")
    @TableField(value = "c_longitude")
    private String cameraLongitude;// 设备经度

    @Column(name = "c_latitude")
    @TableField(value = "c_latitude")
    private String cameraLatitude; // 设备纬度

    @Column(name = "c_height")
    @TableField(value = "c_height")
    private String cameraHeight;   // 设备高程

    @Column(name = "c_brand")
    @TableField(value = "c_brand")
    private String cameraBrand;    // 品牌

    @ManyToMany
    @JoinTable(
            name = "Camera_User",
            joinColumns = @JoinColumn(name = "cid"),
            inverseJoinColumns = @JoinColumn(name = "uid")
    )
    @TableField(exist = false)
    private List<User> cameraUser;      // 添加的用户

    @Column(name = "c_status")
    @TableField(value = "c_status")
    private String cameraStatus;   // 状态:在线,离线

    @Column(name = "c_province")
    @TableField(value = "c_province")
    private String province;   // 省

    @Column(name = "c_city")
    @TableField(value = "c_city")
    private String city;       // 市

    @Column(name = "c_district")
    @TableField(value = "c_district")
    private String district;   // 区

    @Transient
    @TableField(exist = false)
    private int uid;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JPAMyBatis-Plus都是Java中的ORM框架,但是它们的实现方式和使用方式有所不同。 JPA是Java Persistence API的缩写,它是一种ORM规范。它定义了一组Java类和注解,可以将Java对象映射到数据库表,从而方便地进行CRUD操作。JPA的实现有Hibernate、EclipseLink等。 MyBatis-PlusMyBatis的增强工具,它简化了MyBatis的使用,提供了一些方便的特性,例如自动生成代码、性能分析等。MyBatis-Plus还提供了一些常用的CRUD操作的方法,方便快速地进行数据库操作。 总的来说,JPA主要是面向对象的,它使用实体类映射数据库表,提供了一种更加面向对象的方式来操作数据库。而MyBatis-Plus则更加注重SQL的灵活性和效率,通过SQL语句来操作数据库。选择哪种框架,需要根据实际需求和项目特点来选择。 ### 回答2: JPAMybatis-Plus都是现在比较流行的ORM框架,用于Java开发领域中的数据访问与持久化。但是,它们的实现方式以及适用场景是有区别的。 1.JPA是一种ORM框架,它的本质是将Java类表述成数据库关系模型,通过自动化的映射机制,将Java类对象持久化数据库中。JPA是一个定义标准,而Hibernate、TopLink、EclipseLink都是其实现,JPA可以通过不同的提供商来实现CRUD操作等功能。而Mybatis-Plus则是对Mybatis的增强工具库,是在Mybatis的基础上进行增强和扩展,可以通过简单的编写实体类、Mapper接口以及xml配置文件来实现数据库操作。 2.JPA的优点在于:使代码更加简洁,通过注解方式来做ORM映射,以及提供了动态查询等强大的查询功能,同时支持JTA的分布式事务。而Mybatis-Plus的优势主要在于:灵活性更高,可以自定义SQL,支持自定义Mapper,比JPA更加适合复杂的SQL查询和数据处理操作。 3.在实际使用中,JPA更适合用于单表增删改查等简单操作,而Mybatis-Plus更适合用于一些复杂的自定义SQL查询和多表关联查询等操作。JPA支持分页查询,但是在某些情况下会出现性能瓶颈,而Mybatis-Plus则对于分页查询进行了优化。 总的来说,JPAMybatis-Plus都有各自的优势和适用场景。在实际开发中,可以根据具体情况来选择采用哪个框架,或者同时使用两个框架来提高开发效率。 ### 回答3: JPA(Java Persistence API)和MyBatis-Plus都是Java开发领域中常用的ORM(Object-relational mapping)框架,用来简化Java对象与数据库之间的映射过程。虽然两者都可以实现ORM的功能,但有着不同的设计思路和特点,下面是它们的区别: 1. 设计思路: JPA是一种基于实体的ORM框架,即将实体类映射成数据库表,通过持久化上下文(Persistence Context)管理实体的生命周期,支持JPA API标准和JPQL查询语言。 MyBatis-Plus则是一种基于Mapper的ORM框架,即将实体对应的CURD操作都封装在Mapper接口中,并支持自定义SQL和条件构造器功能。 2. 支持数据库类型: JPA支持主流的关系型数据库,如MySQL、Oracle、PostgreSQL等,并且支持对象模型的关系继承; MyBatis-Plus同样支持主流的关系型数据库,但通过扩展MyBatis插件,还可以支持非关系型数据库,如MongoDB和HBase等。 3. 调用方式: JPA通过EntityManager实现对实体和持久化上下文(Persistence Context)的操作,通过Hibernate等ORM提供实现替换; MyBatis-Plus则是通过Mapper接口和SqlSession进行操作,其中Mapper接口与xml文件映射,SqlSession实例由MyBatisSqlSessionFactory创建。 4. 动态SQL的支持: JPA上的动态查询使用标准JPQL语句,而MyBatis-Plus通过条件构造器和动态SQL的方式支持更加灵活的动态查询语句。 5. 性能方面: JPA映射关系复杂的实体时,会存在多级懒加载问题,影响系统性能。MyBatis-Plus则通过多表关联查询和局部加载来解决这个问题。 总体来说,JPA更加适合处理实体关系复杂,使用标准查询语言的系统,而MyBatis-Plus更适合处理动态权限控制、数据分片等场景,对要求高性能的项目更有优势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值