Java tutorial
/** * Copyright © 2012-2013 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); */ package com.lcw.one.modules.sys.entity; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.google.common.collect.Lists; import com.lcw.one.common.persistence.IdEntity; import com.lcw.one.common.utils.Collections3; import com.lcw.one.common.utils.excel.annotation.ExcelField; import com.lcw.one.common.utils.excel.fieldtype.RoleListType; import org.hibernate.annotations.Cache; import org.hibernate.annotations.*; import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.Length; import javax.persistence.Entity; import javax.persistence.*; import javax.persistence.OrderBy; import javax.persistence.Table; import javax.validation.constraints.NotNull; import java.util.Date; import java.util.List; /** * Entity * @author ThinkGem * @version 2013-5-15 */ @Entity @Table(name = "sys_user") @DynamicInsert @DynamicUpdate @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) public class User extends IdEntity<User> { private static final long serialVersionUID = 1L; private Office company; // ? private Office office; // private String loginName;// ?? private String password;// ? private String no; // ? private String name; // ?? private String email; // private String phone; // ? private String mobile; // private String userType;// private String loginIp; // ?IP private Date loginDate; // ? private List<Role> roleList = Lists.newArrayList(); // public User() { super(); } public User(String id) { this(); this.id = id; } @ManyToOne @JoinColumn(name = "company_id") @NotFound(action = NotFoundAction.IGNORE) @NotNull(message = "??") @ExcelField(title = "?", align = 2, sort = 20) public Office getCompany() { return company; } public void setCompany(Office company) { this.company = company; } @ManyToOne @JoinColumn(name = "office_id") @NotFound(action = NotFoundAction.IGNORE) @NotNull(message = "?") @ExcelField(title = "", align = 2, sort = 25) public Office getOffice() { return office; } public void setOffice(Office office) { this.office = office; } @Length(min = 1, max = 100) @ExcelField(title = "??", align = 2, sort = 30) public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } @JsonIgnore @Length(min = 1, max = 100) public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Length(min = 1, max = 100) @ExcelField(title = "??", align = 2, sort = 40) public String getName() { return name; } @Length(min = 1, max = 100) @ExcelField(title = "?", align = 2, sort = 45) public String getNo() { return no; } public void setNo(String no) { this.no = no; } public void setName(String name) { this.name = name; } @Email @Length(min = 0, max = 200) @ExcelField(title = "", align = 1, sort = 50) public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Length(min = 0, max = 200) @ExcelField(title = "?", align = 2, sort = 60) public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } @Length(min = 0, max = 200) @ExcelField(title = "", align = 2, sort = 70) public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } @Transient @ExcelField(title = "", align = 1, sort = 900) public String getRemarks() { return remarks; } @Length(min = 0, max = 100) @ExcelField(title = "", align = 2, sort = 80, dictType = "sys_user_type") public String getUserType() { return userType; } public void setUserType(String userType) { this.userType = userType; } @Transient @ExcelField(title = "", type = 0, align = 1, sort = 90) public Date getCreateDate() { return createDate; } @ExcelField(title = "?IP", type = 1, align = 1, sort = 100) public String getLoginIp() { return loginIp; } public void setLoginIp(String loginIp) { this.loginIp = loginIp; } @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @ExcelField(title = "?", type = 1, align = 1, sort = 110) public Date getLoginDate() { return loginDate; } public void setLoginDate(Date loginDate) { this.loginDate = loginDate; } @ManyToMany(fetch = FetchType.EAGER) @JoinTable(name = "sys_user_role", joinColumns = { @JoinColumn(name = "user_id") }, inverseJoinColumns = { @JoinColumn(name = "role_id") }) @Where(clause = "del_flag='" + DEL_FLAG_NORMAL + "'") @OrderBy("id") @Fetch(FetchMode.SUBSELECT) @NotFound(action = NotFoundAction.IGNORE) @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @JsonIgnore @ExcelField(title = "", align = 1, sort = 800, fieldType = RoleListType.class) public List<Role> getRoleList() { return roleList; } public void setRoleList(List<Role> roleList) { this.roleList = roleList; } private List<String> roleIdList = Lists.newArrayList(); @Transient public List<String> getRoleIdList() { return roleIdList; } @Transient public void setRoleIdList(List<String> roleIdList) { this.roleIdList = roleIdList; } /** * ??, ??','. */ @Transient public String getRoleNames() { return Collections3.extractToString(roleList, "name", ", "); } @Transient public boolean isAdmin() { return isAdmin(this.id); } @Transient public static boolean isAdmin(String id) { return id != null && id.equals("1"); } // @Override // public String toString() { // return ToStringBuilder.reflectionToString(this); // } }