情况是这样的
perosn 表 project表
person_id name projec_id name person_idproject表和person表式多对一的关系。如果用Hibernate配置文件类可以这么写public class Project
{
private long projectId;
private String name;
private long personId
private Person person;
}
<class name="Project" table="PROJECT" >
<id name="projectId" type="java.lang.Long">
<column name="PROJECT_ID" length="12" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="personId" type="java.lang.Long">
<column name="PERSON_ID" length="3" />
</property>
<many-to-one name="person" class="Person">
<column name="PERSON_ID"></column>
</many-to-one>这样有个好处就是在我们增加一个project时候不用去new一个person就可以保存了。
查询的时候可以直接用project中的person来级联查询。
现在我想用hibernate中@标注的方式来这样使用。但如果把两个都@Entity
@Table(name = "PROJECT")
public class Project
{
@Id
@Column(name = "PROJECT_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long projectId; @Column(name = "NAME")
private String name; @Column(name = "PERSON_ID")
private long personId @ManyToOne
@JoinColumn(name="PERSON_ID")
private Person person;
}
这样写是肯定不行的。提示是不能重复对应两个
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity:请问如果我像配置文件一样使person_id的话我应该怎么配置?
perosn 表 project表
person_id name projec_id name person_idproject表和person表式多对一的关系。如果用Hibernate配置文件类可以这么写public class Project
{
private long projectId;
private String name;
private long personId
private Person person;
}
<class name="Project" table="PROJECT" >
<id name="projectId" type="java.lang.Long">
<column name="PROJECT_ID" length="12" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="personId" type="java.lang.Long">
<column name="PERSON_ID" length="3" />
</property>
<many-to-one name="person" class="Person">
<column name="PERSON_ID"></column>
</many-to-one>这样有个好处就是在我们增加一个project时候不用去new一个person就可以保存了。
查询的时候可以直接用project中的person来级联查询。
现在我想用hibernate中@标注的方式来这样使用。但如果把两个都@Entity
@Table(name = "PROJECT")
public class Project
{
@Id
@Column(name = "PROJECT_ID", nullable = false)
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private long projectId; @Column(name = "NAME")
private String name; @Column(name = "PERSON_ID")
private long personId @ManyToOne
@JoinColumn(name="PERSON_ID")
private Person person;
}
这样写是肯定不行的。提示是不能重复对应两个
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity:请问如果我像配置文件一样使person_id的话我应该怎么配置?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货