2016-11-13 72 views
0

我想修改這個this示例創建用戶和使用Spring安全和jdbc許可登錄我現在的股權思考和搜索我將如何轉換一些將示例中的模型中的模型轉換爲JDBC。所以我問什麼會是相當於下列休眠模式在JDBC什麼將在春季JDBC相當於Hibernate模型JDBC

import org.hibernate.validator.constraints.NotEmpty; 

@Entity 
@Table(name="APP_USER") 
public class User implements Serializable{ 

    @Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private Integer id; 

    @NotEmpty 
    @Column(name="SSO_ID", unique=true, nullable=false) 
    private String ssoId; 

    @NotEmpty 
    @Column(name="PASSWORD", nullable=false) 
    private String password; 

    @NotEmpty 
    @Column(name="FIRST_NAME", nullable=false) 
    private String firstName; 

    @NotEmpty 
    @Column(name="LAST_NAME", nullable=false) 
    private String lastName; 

    @NotEmpty 
    @Column(name="EMAIL", nullable=false) 
    private String email; 

    @NotEmpty 
    @ManyToMany(fetch = FetchType.LAZY) 
    @JoinTable(name = "APP_USER_USER_PROFILE", 
      joinColumns = { @JoinColumn(name = "USER_ID") }, 
      inverseJoinColumns = { @JoinColumn(name = "USER_PROFILE_ID") }) 
    private Set<UserProfile> userProfiles = new HashSet<UserProfile>(); 
    public Integer getId() { 
     return id; 
    } 
    public void setId(Integer id) { 
     this.id = id; 
    } 
    public String getSsoId() { 
     return ssoId; 
    } 
    public void setSsoId(String ssoId) { 
     this.ssoId = ssoId; 
    } 
    public String getPassword() { 
     return password; 
    } 
    public void setPassword(String password) { 
     this.password = password; 
    } 
    public String getFirstName() { 
     return firstName; 
    } 
    public void setFirstName(String firstName) { 
     this.firstName = firstName; 
    } 
    public String getLastName() { 
     return lastName; 
    } 
    public void setLastName(String lastName) { 
     this.lastName = lastName; 
    } 
    public String getEmail() { 
     return email; 
    } 
    public void setEmail(String email) { 
     this.email = email; 
    } 
    public Set<UserProfile> getUserProfiles() { 
     return userProfiles; 
    } 
    public void setUserProfiles(Set<UserProfile> userProfiles) { 
     this.userProfiles = userProfiles; 
    } 
    @Override 
    public int hashCode() { 
     final int prime = 31; 
     int result = 1; 
     result = prime * result + ((id == null) ? 0 : id.hashCode()); 
     result = prime * result + ((ssoId == null) ? 0 : ssoId.hashCode()); 
     return result; 
    } 
    @Override 
    public boolean equals(Object obj) { 
     if (this == obj) 
      return true; 
     if (obj == null) 
      return false; 
     if (!(obj instanceof User)) 
      return false; 
     User other = (User) obj; 
     if (id == null) { 
      if (other.id != null) 
       return false; 
     } else if (!id.equals(other.id)) 
      return false; 
     if (ssoId == null) { 
      if (other.ssoId != null) 
       return false; 
     } else if (!ssoId.equals(other.ssoId)) 
      return false; 
     return true; 
    } 

    /* 
    * DO-NOT-INCLUDE passwords in toString function. 
    * It is done here just for convenience purpose. 
    */ 
    @Override 
    public String toString() { 
     return "User [id=" + id + ", ssoId=" + ssoId + ", password=" + password 
       + ", firstName=" + firstName + ", lastName=" + lastName 
       + ", email=" + email + "]"; 
    }  
} 

@Entity 
@Table(name="USER_PROFILE") 
public class UserProfile implements Serializable{ 
    @Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
    private Integer id; 
    @Column(name="TYPE", length=15, unique=true, nullable=false) 
    private String type = UserProfileType.USER.getUserProfileType(); 
    public Integer getId() { 
     return id; 
    } 
    public void setId(Integer id) { 
     this.id = id; 
    } 
    public String getType() { 
     return type; 
    } 
    public void setType(String type) { 
     this.type = type; 
    } 
    @Override 
    public int hashCode() { 
     final int prime = 31; 
     int result = 1; 
     result = prime * result + ((id == null) ? 0 : id.hashCode()); 
     result = prime * result + ((type == null) ? 0 : type.hashCode()); 
     return result; 
    } 
    @Override 
    public boolean equals(Object obj) { 
     if (this == obj) 
      return true; 
     if (obj == null) 
      return false; 
     if (!(obj instanceof UserProfile)) 
      return false; 
     UserProfile other = (UserProfile) obj; 
     if (id == null) { 
      if (other.id != null) 
       return false; 
     } else if (!id.equals(other.id)) 
      return false; 
     if (type == null) { 
      if (other.type != null) 
       return false; 
     } else if (!type.equals(other.type)) 
      return false; 
     return true; 
    } 
    @Override 
    public String toString() { 
     return "UserProfile [id=" + id + ", type=" + type + "]"; 
    } 
} 

我還在學習,我想了解@ManyToMany和@JoinTable批註我想知道它如何在JDBC

回答

1
完成

以下是Spring支持的數據訪問技術,有多種選擇。

彈簧JDBC提供了模板用於減少樣板代碼,用於通過簡單的訪問數據庫舊的方式 - 寫你自己的SQL查詢。

彈簧ORM提供了簡化的模板,用於通過ORM技術,例如休眠,開放JPA等

彈簧DAO訪問數據庫:

在Spring數據訪問對象(DAO)支持的目的是使它能夠以一致的方式輕鬆處理JDBC,Hibernate或JDO等數據訪問技術

+0

我想了解ManyToMany和JoinTable註解,我想知道它如何在JDBC中完成 – ivan