1. Create Tables
CREATE TABLE IF NOT EXISTS user_type (
USER_TYPE_SID int(11) NOT NULL,
USER_TYPE varchar(50) NOT NULL,
OPRTNL_FLAG char(1) DEFAULT 'A',
PRIMARY KEY (USER_TYPE_SID),
UNIQUE KEY USER_TYPE (USER_TYPE)
)
CREATE TABLE IF NOT EXISTS user_account (
USER_SID int(11) NOT NULL AUTO_INCREMENT,
USER_TYPE_SID int(11) NOT NULL DEFAULT '3',
NAME varchar(50) NOT NULL,
USERNAME varchar(50) NOT NULL,
PASSWORD varchar(50) NOT NULL,
EMAIL_ID varchar(100) DEFAULT NULL,
OPRTNL_FLAG char(1) DEFAULT 'A',
CREATED_BY int(10) DEFAULT '1',
ACTIVE_CODE varchar(20) NOT NULL,
PRIMARY KEY (USER_SID),
UNIQUE KEY USERNAME (USERNAME),
KEY USER_TYPE_CID_FK (USER_TYPE_SID)
)
2. Entity Classes (UserType, UserDetail)
UserType.java
package com.spin.view;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table (name="user_type")
public class UserType {
//in this table, id is primary key.
@Id
@Column(name="USER_TYPE_SID")
private Long userTypeId;
@Column(name="USER_TYPE", length=50, nullable=false)
private String userType;
@Column(name="OPRTNL_FLAG", length=1, nullable=false)
private String oprtnlFlag="A";
@Override
public String toString() {
return "UserType [userTypeId=" + userTypeId + ", userType=" + userType + ", oprtnlFlag=" + oprtnlFlag + "]";
}
public String getOprtnlFlag() {
return oprtnlFlag;
}
public void setOprtnlFlag(String oprtnlFlag) {
this.oprtnlFlag = oprtnlFlag;
}
public Long getUserTypeId() {
return userTypeId;
}
public void setUserTypeId(Long userTypeId) {
this.userTypeId = userTypeId;
}
public String getUserType(){
return userType;
}
public void setUserType(String userType){
this.userType=userType;
}
}
UserDetail.java
package com.spin.view;
import javax.persistence.Column;
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.ManyToOne;
import javax.persistence.Table;
@Entity
@Table (name="USER_ACCOUNT")
public class UserDetail {
@Id
@Column(name="USER_SID", nullable=false)
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long userId;
@JoinColumn(name="USER_SID",referencedColumnName="USER_TYPE_SID",insertable=false,updatable=false)
@ManyToOne(fetch = FetchType.LAZY) // this column is foreign key , so addition Relationship
private UserType userType;
@Column(name="NAME", nullable=false)
private String name;
@Column(name="USERNAME", nullable=false)
private String userName;
@Column(name="PASSWORD", nullable=false)
private String passWord;
@Column(name="EMAIL_ID", nullable=true)
private String emailId;
@Column(name="OPRTNL_FLAG", nullable=true)
private String oprnlFlag = "A";
@Column(name="CREATED_BY", nullable=true)
private Long createdBy;
@Column(name="ACTIVE_CODE", nullable=false)
private String activationCode = "SPINSOFT";
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public UserType getUserType() {
return userType;
}
public void setUserType(UserType userType) {
this.userType = userType;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getEmailId() {
return emailId;
}
public void setEmailId(String emailId) {
this.emailId = emailId;
}
public String getOprnlFlag() {
return oprnlFlag;
}
public void setOprnlFlag(String oprnlFlag) {
this.oprnlFlag = oprnlFlag;
}
public Long getCreatedBy() {
return createdBy;
}
public void setCreatedBy(Long createdBy) {
this.createdBy = createdBy;
}
public String getActivationCode() {
return activationCode;
}
public void setActivationCode(String activationCode) {
this.activationCode = activationCode;
}
@Override
public String toString() {
return "UserDetail [userId=" + userId + ", userType=" + userType + ", name=" + name + ", userName=" + userName
+ ", passWord=" + passWord + ", emailId=" + emailId + ", oprnlFlag=" + oprnlFlag + ", createdBy="
+ createdBy + ", activationCode=" + activationCode + "]";
}
}