Java 映射休眠
我有两个实体:技术和能力 每个能力可以有一个或多个技术 所以我已经通过Hibernate生成了这些类 他给了我三节课Java 映射休眠,java,hibernate,jakarta-ee,Java,Hibernate,Jakarta Ee,我有两个实体:技术和能力 每个能力可以有一个或多个技术 所以我已经通过Hibernate生成了这些类 他给了我三节课 Technologie Competence TechnologieId 现在我对如何添加技术感到困惑 那么TechnoligieId有什么意义呢 Technologie.java public class Technologie implements java.io.Serializable { private TechnologieId id; priva
Technologie
Competence
TechnologieId
现在我对如何添加技术感到困惑
那么TechnoligieId
有什么意义呢
Technologie.java
public class Technologie implements java.io.Serializable {
private TechnologieId id;
private Competence competence;
private String libelleTechnologie;
}
TechnologieId.java
public class TechnologieId implements java.io.Serializable {
private int idCompetence;
private int idTechnologie;
}
Technologie.hbm.xml
<class name="com.model.Technologie" table="technologie" catalog="gestioncollaborateur">
<composite-id name="id" class="com.model.TechnologieId">
<key-property name="idCompetence" type="int">
<column name="idCompetence" />
</key-property>
<key-property name="idTechnologie" type="int">
<column name="idTechnologie" />
</key-property>
</composite-id>
<many-to-one name="competence" class="com.model.Competence" update="false" insert="false" fetch="select">
<column name="idCompetence" not-null="true" />
</many-to-one>
<property name="libelleTechnologie" type="string">
<column name="libelleTechnologie" length="254" />
</property>
</class>
如果问题中正确提到了关系。那你为什么不这样做呢
public class Technologie implements java.io.Serializable {
private id;
private Competence competence;
private String libelleTechnologie;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="<yourForeign Key for Competence>")
public Competence getCompetence() {
return competence;
}
}
公共类技术实现java.io.Serializable{
私人身份证;
私人能力;
私人串诽谤;
@manytone(fetch=FetchType.LAZY)
@JoinColumn(名称=”)
公共能力{
返回能力;
}
}
和能力类,如
public class Competence implements java.io.Serializable {
private id;
private List<Technologie> technologies;
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(mappedBy = "<name of the property of Competence in Technology class>")
public List<Technologies> getTechnologies() {
return technologies;
}
}
公共类实现java.io.Serializable{
私人身份证;
私有列表技术;
@OneToMany(fetch=FetchType.LAZY)
@JoinColumn(mappedBy=“”)
公共列表获取技术(){
返回技术;
}
}
此外,如果技术是关系的管理方面,这也是一个问题。基本上,这意味着你将对主要处理关系的Technologie进行保存/更新
如果你真的想让OneToMany作为管理方。您必须在getTechnologies方法的@JoinColumn注释中添加insertable=false、updateable=false属性 您有第三个类/表,因为它使用n:n映射。现在,每种能力都可以有多种技术,每种技术都可以有多种能力(这对我来说是有意义的)是的,但是我如何才能添加新技术,每次需要创建新技术时我是否需要创建新技术?您是否尝试添加新技术?您尝试过什么,哪些有效,哪些无效?不,我只需要知道是否必须为Technologies创建一个类Dao和服务。您是否可以发布表定义,您是否使用Hibernate工具生成模型?