温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Entity怎么用

发布时间:2022-01-19 16:29:42 来源:亿速云 阅读:132 作者:iii 栏目:开发技术

这篇文章主要介绍了Entity怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Entity怎么用文章都会有所收获,下面我们一起来看看吧。

Entity是基于JPA规范。更详细的技术细节请参考JPA或Hibernate文档。

配置文件

com.jspxcms.plug.ContextConfig的@EntityScan({ "com.jspxcms.plug.domain" })会自动扫描该包下含有@Entity注解的类。

数据库表

不使用主键自增策略,而是使用JPA的TABLE主键生成策略,将主键放到数据库中的一个表里,这个表在Hibernate里默认为Hibernate_sequences。所以在建表的时候不要使用主键自增。

create table plug_resume
(
   f_resume_id          int not null,
   f_site_id            int not null,
   f_name               varchar(100) not null comment '姓名',
   f_post               varchar(100) not null comment '应聘职位',
   f_creation_date      datetime not null comment '投递日期',
   f_gender             char(1) not null default 'M' comment '性别',
   f_birth_date         datetime comment '出生日期',
   f_mobile             varchar(100) comment '手机',
   f_email              varchar(100) comment '邮箱',
   f_expected_salary    int comment '期望薪水',
   f_education_experience longtext comment '教育经历',
   f_work_experience    longtext comment '工作经历',
   f_remark             longtext comment '备注',
   primary key (f_resume_id)
)
engine = innodb;
alter table plug_resume comment '简历表';
alter table plug_resume add constraint fk_plug_resume_site foreign key (f_site_id)
      references cms_site (f_site_id) on delete restrict on update restrict;

实体类

使用JPA的TABLE主键生成策略。

需注意以下三个值:name = "tg_plug_resume", pkColumnValue = "plug_resume" generator = "tg_plug_resume",其中plug_resume为表名,如果表名为abc,则这三个值分别为name = "tg_abc", pkColumnValue = "abc" generator = "tg_abc"。

initialValue = 1代表主键从1开始。allocationSize = 10代表hibernate一次获取10个主键值,如果没有用完系统就重启了,那么在数据库中会出现主键不连续的情况。但由于获取主键值要查询并修改数据库,对于频繁插入数据的表来说,是一个很大的开销,所以可以根据情况适当调整这个值。

如果使用MySQL的主键自增,除了在表主键里增加主键自增属性,在Entity里的ID注解也要改为@GeneratedValue( generation = IDENTITY )或@GeneratedValue( generation = AUTO )。

package com.jspxcms.plug.domain;

@Entity
@Table(name = "plug_resume")
public class Resume implements java.io.Serializable {
    private Integer id;
    ……

  @Id
    @Column(name = "f_resume_id", unique = true, nullable = false)
    @TableGenerator(name = "tg_plug_resume", pkColumnValue = "plug_resume", initialValue = 1, allocationSize = 10)
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "tg_plug_resume")
    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }
    ……
}

关于“Entity怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Entity怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI