【发布时间】:2014-07-04 08:41:50
【问题描述】:
我有使用 Oracle DB 的运行良好的 Spring Security 应用程序。现在我有 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 字段。与username 绑定的两个表。
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
}
【问题讨论】:
-
是的,当然,您可以将它与原始类型或包装类型一起使用。
-
让我来选择你的答案。
标签: java spring hibernate spring-mvc spring-security