休眠复合主键

卡菲·毛拉纳(Kahfi Maulana)

休眠注释存在一些问题。我在这里有一些计划:

桌子 feature_map

  1. module_name(PK)(FK m_module_fk
  2. feature_code(PK)(FK m_feature_fk

表格模块

  1. module_name (PK)

表格功能

  1. feature_code (PK)

我从休眠和其他站点尝试了几种方法,但是没有用。谁能帮我这个忙吗?

已编辑

抱歉,我没有告诉您所有代码。我的意思是,我要求您提供自己的代码来将其生成为休眠注释代码。对不起,这是我的错误。我有正确的一个,我昨晚找到了。CMIIW。

下面是我的代码:

FeatureMap.class

@Entity
@Table(name = "M_FEATURE_MAP")
@IdClass(FeatureMapPk.class)
public class FeatureMap implements Serializable {

    @Id
    @Column(name = "module_name")
    private String moduleName;

    @Id
    @Column(name = "feature_code")
    private String featureCode;

    @MapsId("moduleName")
    @OneToOne
    @JoinColumn(name = "module_name", referencedColumnName = "module_name",
            insertable = false, updatable = false)
    private Module module;

    @MapsId("featureCode")
    @OneToOne
    @JoinColumn(name = "feature_code", referencedColumnName = "feature_code",
            insertable = false, updatable = false)
    private Feature feature;

    /*Getter Setter, hash equals and toString*/
}

FeatureMapPk.class

public class FeatureMapPk implements Serializable {

    private String moduleName;
    private String featureCode;

    public FeatureMapPk(){

    }

    public FeatureMapPk(String moduleName, String featureCode){
        this.moduleName = moduleName;
        this.featureCode = featureCode;
    }

    /*Getter Setter, hash equals and toString*/
}

模块类

@Entity
@Table(name = "M_MODULE")
public class Module implements Serializable {

    @Id
    @Column(name = "module_name")
    private String moduleName;

    @JsonIgnore
    @OneToOne(fetch = FetchType.LAZY, mappedBy = "module")
    private FeatureMap featureMap;

    /*Getter Setter, hash equals and toString*/
}

要素类

@Entity
@Table(name = "M_FEATURE")
public class Feature implements Serializable {

    @Id
    @Column(name = "feature_code")
    private String featureCode;

    @JsonIgnore
    @OneToOne(fetch = FetchType.LAZY, mappedBy = "feature")
    private FeatureMap featureMap;

    /*Getter Setter, hash equals and toString*/
}

非常感谢您的回答:)很抱歉,这是我的错误。

Zielu

在没有看到您的代码的情况下,我们如何能真正提供帮助,您尝试过的几种方法以及实际的模式而不仅仅是主键。

但是,您很可能对复合键不感兴趣,而是对模块和功能中的简单OneToMany或ManyToMany映射感兴趣,而对于FeatureMap没有实体。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章