@Entity 和 @Table
Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库。
这些普通Java对象被称作Entity Bean。
除了是用Java Persistence元数据将其映射到数据库外,Entity Bean与其他Java类没有任何区别。
事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。
Java Persistence API还定义了一种查询语言(JPQL),具有与SQL相类似的特征,只不过做了裁减,以便处理Java对象而非原始的关系表。
注意:在Hibernate中也有@Entity和Table这两个注解,但是其中@Entity注解已经废弃,所以本文只分析JPA下的注解
解释:
@Entity 表明该类 (UserEntity) 为一个实体类,它默认对应数据库中的表名是user_entity。这里也可以写成
@Entity(name = "xwj_user")
或者
@Entity
@Table(name = "xwj_user", schema = "test")
查看@Entity注解,发现其只有一个属性name,表示其所对应的数据库中的表名
@Table 当实体类与其映射的数据库表名不同名时需要使用 @Table注解说明,该标注与 @Entity 注解并列使用,置于实体类声明语句之前,可写于单独语 句行,也可与声明语句同行。
@Table注解的常用选项是 name,用于指明数据库的表名
@Table注解还有两个选项 catalog 和 schema 用于设置表所属的数据库目录或模式,通常为数据库名
如果缺省@Table注解,则class字段名即表中的字段名,所以需要@Column注解来改变class中字段名与db中表的字段名的映射规则
@Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息,属性如下:
)name:映射的列名。如:映射tbl_user表的name列,可以在name属性的上面或getName方法上面加入;
)unique:是否唯一;
)nullable:是否允许为空;
)length:对于字符型列,length属性指定列的最大字符长度;
)insertable:是否允许插入;
)updatetable:是否允许更新;
)columnDefinition:定义建表时创建此列的DDL;
)secondaryTable:从表名。如果此列不建在主表上(默认是主表),该属性定义该列所在从表的名字
如果是主键id,还会用到@Id注解
@Id注释指定表的主键,它可以有多种生成方式:
)TABLE:容器指定用底层的数据表确保唯一;
)SEQUENCE:使用数据库德SEQUENCE列莱保证唯一(Oracle数据库通过序列来生成唯一ID);
)IDENTITY:使用数据库的IDENTITY列莱保证唯一;
)AUTO:由容器挑选一个合适的方式来保证唯一;
)NONE:容器不负责主键的生成,由程序来完成。
其中与@Id一起使用的还有另外两个注解:@GeneratedValue、@GenericGenerator,具体使用方法可参考hibernate中的@GeneratedValue与@GenericGenerator
引用自 :
仅此而已-远方
https://www.cnblogs.com/xuwenjin/p/8830850.html
@Entity 和 @Table的更多相关文章
- hibernate中@Entity和@Table的区别
Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...
- JPA之@Entity、@Table、@Column、@Id
Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...
- Spring Boot JPA中使用@Entity和@Table
文章目录 默认实现 使用@Table自定义表格名字 在JPQL Queries中重写表格名字 Spring Boot JPA中使用@Entity和@Table 本文中我们会讲解如何在Spring Bo ...
- Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)
当项目变得比较大的时候,如何还使用hbm.xml文件来配置Hibernate实体就会变得比较复杂.这里Hibernate提供了Annotation注解方式,使得Hibernate的映射文件变得很方便管 ...
- 01-hibernate注解:类级别注解,@Entity,@Table,@Embeddable
@Entity @Entity:映射实体类 @Entity(name="tableName") name:可选,对应数据库中一个表,若表名与实体类名相同,则可以省略. 注意:使用@ ...
- cocos2d-x开发: 场景实体(entity)管理
公司现在开新项目,主题的框架部分都是我自己在做,不用受到别人的牵制,所以还算是比较的自由,很好发挥. 游戏并不大,所以需要用到的地方并不多.今天花了一些时间写了场景entity管理的部分代码,还没有完 ...
- Symfony2 Doctrine从现有Database生成Entity(转载自http://blog.it985.com/6809.html)
在我的以前一章Symfony之十分钟入门说了怎样生成数据库,然后设计实体Entity,再同步数据库的表结构,一般我们的顺序都是这样:生成数据库->设计实体Entity->同步数据库表结构. ...
- ssh框架搭建出现的异常: class com.my.entity.user not found while looking for property: id
在处理用户注册的时候,user实体的bean创建不出来,原代码如下: <class name="com.my.entity.User" table="user&qu ...
- [Abp 源码分析]七、仓储与 Entity Framework Core
0.简介 Abp 框架在其内部实现了仓储模式,并且支持 EF Core 与 Dapper 来进行数据库连接与管理,你可以很方便地通过注入通用仓储来操作你的数据,而不需要你自己来为每一个实体定义单独的仓 ...
随机推荐
- java poi生成excel(个人例子js-jsp-java)
js代码: function exportRepQudl(){ if(confirm("导出输出页面内容?")){ var id = $("input[name='id' ...
- ROS开发与常用命令
初始化ROS的catkin工作空间:catkin_init_workspace 编译ROS的catkin工作空间:catkin_make 读取当前catkin工作空间的环境变量:source deve ...
- aop 日志统一处理
AOP是Aspect Oriented Programing的简称,面向切面编程.AOP适合于那些具有横切逻辑的应用:如性能监测,访问控制,事务管理.缓存.对象池管理以及日志记录.AOP将这些分散在各 ...
- PHP做APP接口时,如何保证接口的安全性??????????
PHP做APP接口时,如何保证接口的安全性? 1.当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在sess ...
- function module 之间调用
1: 在一个function group 中定义一个function module 2:在另外一个module中调用该module "调用其它function 要用 单引号 引着. 一个mo ...
- 银联卡中关于CVN/CVN2/ICVN的区别
银联China Union Pay,是中国唯一合法的卡组织机构,同时也是EMVCo成员.关于银联卡中CVN/CVN2/ICVN的区别,刚开始我自己不了解,但经过查找资料和请教其他人,对它们的概念也渐渐 ...
- (转)Fabric CA环境的集成
PS:因为我部署的是集群(4peer+1order),需要为order,org1,org2分别建立一个CA,拿org1使用举例,获取org1根证书私钥名称:PRIVATE_KEY.sh #!/bin/ ...
- Linux文本编辑器之vim
VIM 文本编辑器 vim/vi是Unix/Linux上最常用的文本编辑器而且功能强大.注意:只有命令,没有菜单 VIM工作模式 命令模式:又称为一般模式 编辑模式:又称为低行模式,命令行模式 插入命 ...
- java实现的加密解密
void encode(File enfile, File defile) throws Exception { String Algorithm = "DES"; byte[] ...
- 《Java程序设计》第一周学习记录(2)
目录 使用JDB调试程序 系统文件被覆盖的挽救 参考资料 使用JDB调试程序 JDB是JDK自带的基于命令行的调试程序.我们先来man一下吧(说到这里,我之前在翻娄老师的博客的时候看到一篇文章:做中学 ...