首页 > 作文

@TableName注解和@Table的区别及说明

更新时间:2023-04-04 15:16:20 阅读: 评论:0

目录
@tablename注解和@table区别前言@tablename参数说明@table小结一下table(name=“xx“)与entity(name=“xx“) 问题

@tablename注解和@table区别

最近开发项目的时候,从一个项目迁移代码到另一个项目,原有项目用的是hibernate,现有项目用的是mybatis-plus,代码迁移过来后,schema属性用于指定数据库实例名。

但是@table属性schema在mybatis-plus框架中失效了,一直找不到对应的实例名。

前言

@tablename是mybatis-plus中的注解,主要是实现实体类型和people复数数据库中的表实现映射。

注意,不要将@tablename和@table注解认为是一个,虽然功能相同,但是,@tablename是mybatis-plus中的注解,@table是hibernate中的注解。

@tablename参数说明

@tablename源码

public @interface tablename {    java.la公安类专业ng.string value() default "";    java.lang.string schema() default "";    boolean keepglobalprefix() default fal;    java.lang.string resultmap() default "";    boo钱钟书故居lean autoresultmap() default fal;}

@tablename使用

@tablename("sys_ur")// 该注解主要是现实实体类型和数据库中的表实现映射。public class sysur implements rializable {    @tableid(type= idtype.auto)    private long id;    private string urname;    //用户名    private string loginname;    //登录密码,密码需要加密    private string password;}

@table

当实体类与其映射的数据库表名不同名时需要使用 @table 标注说明,该标注与 @entity 标注并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。

@table 标山东一本线注的常用选项是 name,用于指明数据库的表名

@table标注还有一个两个选项 catalog 和 schema 用于设置表所属的数据库目录或模式,通常为数据库名。uniqueconstraints选项用于设置约束条件,通常不须设置。

name属性

name属性用于指定数据库表名称

若不指定则以实体类名称作为表名

catalog属性

catalog属性用于指定数据库实例名

当catalog属性不指定时,新创建的表将出现在url指定的数据库实例中

当catalog属性设置名称时,若数据库存在和指定名称一致的实例,新创建的表将出现在该实例中

schema属性

作用与catalog属性作用一致,可自行测试

uniqueconstraints属性

uniqueconstraints属性用于设定约束条件

@table(name="customers",uniqueconstraint现代科技s={@uniqueconstraint(columnnames={"name"})})@entitypublic class customer {    private integer id;    private string name;    private string email;    private int age;    ......}

小结一下

1.当实体类名和数据库表名不一致时,name属性可以实现映射,及时表名一致,也推荐使用,提高程序的可读性

2.catalog和chema属性一般不需要指定

3.uniqueconstraints属性一般也不需要指定,但是如有需要则可以指定

table(name=“xx“)与entity(name=“xx“) 问题

@entity@table(name="t_qibie")

这样写的话在hql里要用实体的名字 from qibievo

如果是这样的话

@entity(name="t_qibie")

这样写的话在hql里要用表的名字 from t_qibie

还有有时候只能用@entity(name=”t_qibie”)的话,可能是:javaee6.0中的 javax.persistence.jar与 hibernate中的hibernate-jpa-2.1-api-1.0.0.final.jar冲突 ,而我采取的措施是删除了javaee6.0的库,运行就正常了,然后在加进来有正常了 。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 15:16:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/cc44cb68ca963a43fac94c55a960418c.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:@TableName注解和@Table的区别及说明.doc

本文 PDF 下载地址:@TableName注解和@Table的区别及说明.pdf

标签:属性   注解   数据库   实例
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图