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;
}
}
## 寫在最後
本篇是新手發佈內容,如有相關錯誤言論,大神們可聯繫本博主修改或刪除,請大家多多指教與包涵!!!