我正在爲此掙扎數小時。如何將SQL表創建轉換爲JPA hibernate autocreation
這些都是我想在DB中創建了所有的PK和UQ等表
CREATE TABLE users (
username VARCHAR(45) NOT NULL ,
password VARCHAR(45) NOT NULL ,
enabled TINYINT NOT NULL DEFAULT 1 ,
PRIMARY KEY (username));
CREATE TABLE user_roles (
user_role_id int(11) NOT NULL AUTO_INCREMENT,
username varchar(45) NOT NULL,
role varchar(45) NOT NULL,
PRIMARY KEY (user_role_id),
UNIQUE KEY uni_username_role (role,username),
KEY fk_username_idx (username),
CONSTRAINT fk_username FOREIGN KEY (username) REFERENCES users (username));
我不能把這種成Java實體JPA註解來達到同樣的結果D B。
我的用戶對象:
@Entity
@Table(name = "users", catalog = "test")
public class User {
@Id
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@Column(name = "email")
private String email;
@Column(name = "birthdate")
private Date birthDate;
@Column(name = "proffesion")
private String profession;
而且我的UserRole對象:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_role_id", unique = true, nullable = false)
private int id;
@OneToOne(targetEntity=User.class)
private String username;
@Column(name="role")
private String role;
我已經試過的許多變化,但它沒有一個確實做到了同樣的事情,上面的SQL查詢。
和你想要的有什麼不同?或者它是一個測驗問題? –
它取決於我嘗試使用哪個版本......通常它會在'UserRoles'表中創建額外的列。簡單地說,我無法將'UserRoles''用戶名'映射到'User''用戶名'。 –