ssj(spring+spring-mvc+jpa)通过jpa注解自动生成数据库表结构,相关注解解释(新手小白)
相关注解解释
@Entity
//表明这是一个实体类
@Table(name = “t_role_new”)
//在数据库自动生成表时,表的名称。
@Id
//表明这是主键id。
@GeneratedValue(strategy = GenerationType.AUTO)
//这是一个生成策略,mysql底层数据库使用的是identity,oracle底层数据库使用的是sequence。这里AUTO是根据使用的数据库来自动选择主键生成的策略。
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:dd”)
//这是日期格式pattern表示样式,还可以是“yyyy-MM-dd”等。
@JsonIgnore
//前台转化json格式是忽略此字段。
@Transient
//表明是一个临时字段,在自动生成表结构时忽略此字段。
多对多注解
@ManyToMany(fetch = FetchType.EAGER)
//多对多,
FetchType.LAZY:懒加载,加载一个实体时,定义懒加载的属性不会马上从数据库中加载;
FetchType.EAGER:急加载,加载一个实体时,定义急加载的属性会立即从数据库中加载;
因为我们用的是异步加载,所以要用FetchType.EAGER
@JoinTable(name = “t_role_permission_new”,
//会生成一张名称为“t_role_permission_new”且包含两个字段:roleId,permissionId;
joinColumns = @JoinColumn(name = “roleId”),
//role实体类的主键
inverseJoinColumns = @JoinColumn(name = “permissionId”)
//permission实体类主键
)
`## role实体类详细内容``
package com.fh.model;
import java.util.Date;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Entity
@Table(name = “t_role_new”)
public class Role {
//与permission关联
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = “t_role_permission_new”,joinColumns = @JoinColumn(name = “roleId”),inverseJoinColumns = @JoinColumn(name = “permissionId”))
@JsonIgnore
private Set permissionSet;
@Transient
private String permissionIds;
//与permission关联结束
//与user关联
@Transient
private String userIds;
@ManyToMany(fetch = FetchType.EAGER,mappedBy = “roleSet”)
private Set userSet;
//与user关联结束
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer roleId ;
private String roleName ;
private Integer roleStatus;//角色状态1.禁用 2.启用
private String roleRemark;//角色备注
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd",timezone = "GMT+8")
private Date createDate ;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd",timezone = "GMT+8")
private Date updateDate ;
public Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public Integer getRoleStatus() {
return roleStatus;
}
public void setRoleStatus(Integer roleStatus) {
this.roleStatus = roleStatus;
}
public String getRoleRemark() {
return roleRemark;
}
public void setRoleRemark(String roleRemark) {
this.roleRemark = roleRemark;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public String getUserIds() {
return userIds;
}
public void setUserIds(String userIds) {
this.userIds = userIds;
}
public Set<User> getUserSet() {
return userSet;
}
public void setUserSet(Set<User> userSet) {
this.userSet = userSet;
}
public Set<Permission> getPermissionSet() {
return permissionSet;
}
public void setPermissionSet(Set<Permission> permissionSet) {
this.permissionSet = permissionSet;
}
public String getPermissionIds() {
return permissionIds;
}
public void setPermissionIds(String permissionIds) {
this.permissionIds = permissionIds;
}
}
## 写在最后
本篇是新手发布内容,如有相关错误言论,大神们可联系本博主修改或删除,请大家多多指教与包涵!!!