我有2个表,即user和user_session。
用户表具有user_id作为主键,它是对user_session表的引用。
加上user_session具有包含session_intime和user_id的复合键。
我已经在JPA中设计了我的实体。现在,我要映射这两个实体。我试图映射这两个表。但是我的应用程序构建失败,提示org.hibernate.MappingException:损坏的列映射。你能帮我吗?
@Entity
@Table(name="user")
public class User {
@Id
@Email
@Column(name = "user_id")
private String userId;
@Column(name = "password")
private String password;
@Column(name = "fname")
private String fname;
@OneToOne(fetch = FetchType.LAZY, mappedBy = "userSessionPK.userId")
private UserSession userSession;
}
@Entity
@Table(name="user_session")
public class UserSession{
@EmbeddedId
private UserSessionPK userSessionPK;
@Column(name = "remote_ip")
private String remoteIp;
}
@Embeddable
public class UserSessionPK implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "user_id")
private String userId;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "time_in")
private Date timeIn;
}
我想将User表的user_id映射到UserSessionPK的user_id。我是JPA的新手,所以我不知道如何使用可嵌入的类进行映射。
@JoinColumn("user_id")
@OneToOne(fetch = FetchType.LAZY)
private UserSession userSession;