日期:2014-05-18  浏览次数:20696 次

ssh注解实体关系配置问题

@Entity
@Table(name = "t_user")
public class Users implements Serializable {

@Id
private String user_code = "";// 用户工号

@Column(name = "USER_NAME")
private String user_name = "";// 用户名称

}


@Entity
@Table(name = "t_post")
public class Post implements Serializable {

private static final long serialVersionUID = 1L;

@Id
@Column(name = "POST_ID")
private String postId;//岗位id

@Column(name = "POST_NAME")
private String postName;//岗位名称
}


@Entity
@Table(name = "t_user_post")
public class UserPost implements Serializable {

private static final long serialVersionUID = 1L;

@OneToOne  
    @JoinColumn(name = "USER_CODE")
private Users user;

@OneToOne  
    @JoinColumn(name = "POST_ID")
private Post post;
 
}



以上3张表。一张用户表,一张岗位表,一张用户和岗位的关系表
用户和岗位的表应该怎么配,我现在的配置,No identifier specified for entity老是出这个错。
spring hibernate

------解决方案--------------------
UserPost?这个实体木有id,没有主键,hibernate编译不通过的。
------解决方案--------------------
引用:
Quote: 引用:

UserPost?这个实体木有id,没有主键,hibernate编译不通过的。

我这张表不需要主键啊,只是张关系表
注解机制就是这样的。必须有主键。
------解决方案--------------------
中间表对象没有id,用户岗位应该是多对多的关系,你这个配置我看起来怎么觉得那么怪异呢。
------解决方案--------------------
引用:

@Id
@ManyToOne  
    @JoinColumn(name = "USER_CODE")
private Users user;

@Id
@ManyToOne 
    @JoinColumn(name = "POST_ID")
private Post post;

改成这样就可以了。。。
加了@Id就是主键了,还是联合主键……
------解决方案--------------------
一楼正解。必须用注解主键。