我有运行良好的 Spring Security 应用程序,它使用 Oracle DB。现在我有 2 个表(根据 this 教程):users
和 user_roles
。
SQL> DESCRIBE user_roles;
----------------------------------------- -------- ----------------------------
USER_ROLE_ID NOT NULL NUMBER
USERNAME NOT NULL VARCHAR2(100)
ROLE NOT NULL VARCHAR2(100)
SQL> DESCRIBE users;
----------------------------------------- -------- ----------------------------
USERNAME NOT NULL VARCHAR2(100)
PASSWORD NOT NULL VARCHAR2(100)
ENABLED NOT NULL NUMBER(1)
如您所见,users
表中没有 ID
字段。两个表与用户名
绑定(bind)。
Hibernate 实体还需要带有 @Id
注释的字段。现在主要问题是:
可以将非整型变量标记为@Id
吗?
这是我的实体:
@Entity
@Table(name = "Users")
public class Users {
@Id
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "enabled")
private int enabled;
//getters and setters
}
最佳答案
如前所述,是的,这是可能的。
更重要的是,与其他可用的教程相比,您正在使用的教程相当糟糕(很久以前我自己就尝试过几次)。
可以在这里找到一个很好的代码示例,您可以从中学到很多东西(就像我一样):
http://fruzenshtein.com/spring-mvc-security-mysql-hibernate/
关于java - 使用 Spring Security 进行 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24554255/