尝试实现Spring Security并且无法映射角色和用户。 所以我有“用户”,“角色”和“user_role_connector”数据库表:休眠映射不起作用
CREATE TABLE users (
user_pk INT NOT NULL AUTO_INCREMENT,
...
PRIMARY KEY (user_pk));
CREATE TABLE roles (
role_pk INT NOT NULL AUTO_INCREMENT,
role VARCHAR(20) NOT NULL UNIQUE,
PRIMARY KEY (role_pk));
CREATE TABLE user_role_connector (
urc_pk INT NOT NULL AUTO_INCREMENT,
user_fk INT NOT NULL,
role_fk INT NOT NULL,
FOREIGN KEY (user_fk) REFERENCES users(user_pk),
FOREIGN KEY (role_fk) REFERENCES roles(role_pk),
PRIMARY KEY (urc_pk));
我有实体类的角色和用户。这两个工作,直到我加入映射:
@Entity
@Table(name = "users")
public final class UserAccount {
private int user_pk;
...
@OneToOne(cascade=CascadeType.ALL)
@JoinTable(name = "user_role_connector",
joinColumns = {@JoinColumn(name = "user_fk", referencedColumnName = "user_pk")},
inverseJoinColumns = {@JoinColumn(name = "role_fk", referencedColumnName = "role_pk")}
)
private Role role;
@Entity
@Table(name = "roles")
final public class Role {
private int role_pk;
private String role;
@OneToMany(cascade=CascadeType.ALL)
@JoinTable(name="user_role_connector",
joinColumns = {@JoinColumn(name="role_fk", referencedColumnName="role_pk")},
inverseJoinColumns = {@JoinColumn(name="user_fk", referencedColumnName="user_pk")}
)
private Set<UserAccount> userRoles;
为什么不会它映射?出现的错误是来自按字母顺序排列的第一个控制器的bean创建错误,因此它必须是错误的映射。
那里有没有很好的Spring Security教程?
编辑:忘了写类的工作,直到“角色”字段userAccount和userRoles添加角色。并且只有错误的代码在这里displayd。 Sry不好英语。
是的,我们真的不希望看到一个关联“连接表”的一对一关联..“User.Roles”应该是多个。这可能是你错误的根源。 –
例如,使用连接表执行OneToOne很少见,但并不少见,请参见[这里](http://en.wikibooks.org/wiki/Java_Persistence/OneToOne#Example_of_a_OneToOne_using_a_JoinTable_database)。但是,这不是这种情况,要么UserAcount应该是ManyToOne或角色OneToOne – Simon
发现错误原因是错误的注释放置。这也可能被打破,但会在稍后出来。 Atm连续的错误是在不同的主题。感谢您的帮助! – user1335163