2016-11-13 73 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