entity 实体类创建说明

插件中的数据表都是有entity实体类自动创建。所以一些字段说明、索引等,需要在实体类中标注上。如下示例: ```` package com.xnx3.wangmarket.plugin.example.entity; import static javax.persistence.GenerationType.IDENTITY; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.Table; import com.xnx3.j2ee.entity.BaseEntity; /** * 人员表,演示 entity 类 * @author 管雷鸣 */ @Entity() @Table(name = "plugin_example_person", indexes={@Index(name="suoyin_index",columnList="age,idcard")}) public class Person extends BaseEntity{ private Integer id; //主键,自动编号 private String name; //人员姓名 private Integer age; //年龄,几岁 private String idcard; //身份证号 @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "id", unique = true, nullable = false) public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(name = "name", columnDefinition="char(20) COLLATE utf8mb4_unicode_ci COMMENT '人员姓名' default ''") public String getName() { return name; } public void setName(String name) { this.name = name; } @Column(name = "age", columnDefinition="int(4) COMMENT '年龄,几岁' default '0'") public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Column(name = "idcard", columnDefinition="char(20) COMMENT '身份证号' default ''") public String getIdcard() { return idcard; } public void setIdcard(String idcard) { this.idcard = idcard; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + ", age=" + age + ", idcard=" + idcard + "]"; } } ```` 又一个人员表,其中记录了每个人的姓名、年龄、身份证号。其中年龄跟身份证号是经常查询使用的,这两列加上了索引。 注意的地方: 1. @Table 的 name ,也就是数据表的命名,插件需要以 plugin_ 开头,如插件的名字是 example ,数据表是人员表,则是 plugin_example_person 这里便是 plugin_插件名字_表名字 进行组合的。如果一个插件就只有一个数据表,比如 cnzz插件,那么表名可以为 plugin_cnzz 1. @Table 中的 @Index 创建索引,其 columnList 里面的值为数据表中字段实际名字,而非Java中驼峰命名。多个字段用,分割,如 columnList="user_name,age"