Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 映射休眠_Java_Hibernate_Jakarta Ee - Fatal编程技术网

Java 映射休眠

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

我有两个实体:技术和能力

每个能力可以有一个或多个技术

所以我已经通过Hibernate生成了这些类

他给了我三节课

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工具生成模型?