Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Hibernate 引发异常,表示实体不存在标识符_Hibernate_Jpa - Fatal编程技术网

Hibernate 引发异常,表示实体不存在标识符

Hibernate 引发异常,表示实体不存在标识符,hibernate,jpa,Hibernate,Jpa,是否应该遵循这种设计模式?我从dto包中的域(这是一个包含所有实体类的不同项目)引入Country和Lang,我映射这些表。 谢谢您没有@IdNo…我应该将对象设为EmbeddedId而不是embedded吗?任何类都不应该同时具有@Entity和@embedded。如果类存储为嵌入式(仅),则它没有自己的表(@table),也没有@Id,也没有@Entity。任何JPA参考都可以解释这一点 @Entity @Table(name = "COUNTRY") @Embeddabl

是否应该遵循这种设计模式?我从dto包中的域(这是一个包含所有实体类的不同项目)引入Country和Lang,我映射这些表。
谢谢

您没有@IdNo…我应该将对象设为EmbeddedId而不是embedded吗?任何类都不应该同时具有
@Entity
@embedded
。如果类存储为嵌入式(仅),则它没有自己的表(
@table
),也没有
@Id
,也没有
@Entity
。任何JPA参考都可以解释这一点
 @Entity
    @Table(name = "COUNTRY")
    @Embeddable
    public class Country implements Serializable {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "CTRY_ID_NBR", nullable = false)
        private Integer countryIdNumber;

        @Column(name = "CTRY_CD_NM", nullable = false)
    private String countryCodeName;

    @Column(name = "CTRY_NM")
    private String countryName;

    @Column(name = "CTRY_CUR_SUFFIX_NM")
    private String countryCurrencySuffixName;

    @Column(name = "CTRY_CUR_CD_NM")
    private String countryCurrencyCodeName; 
} 
@Entity
@Table(name = "LANG")
@Embeddable
    public class Lang implements Serializable {
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "LANG_ID_NBR")
        private Integer langIdNumber;

        @Column(name = "CTRY_ID_NBR", insertable = false, updatable = false)
        private Integer countryIdNumber;

        @Column(name = "LANG_CD_NM")
        private String langCodeName;

        @Column(name = "LANG_NM")
        private String langName;}
  @Entity
    public class LangDto {

        @Embedded
        @AttributeOverrides({ @AttributeOverride(name = "countryIdNumber", column = @Column(name = "CTRY_ID_NBR")),
                @AttributeOverride(name = "langCodeName", column = @Column(name = "LANG_CD_NM")),
                @AttributeOverride(name = "langName", column = @Column(name = "LANG_NM")) })
        private Lang lang;

        @ManyToOne
        @JoinColumn(name = "CTRY_ID_NBR", nullable = false)
        private CountryDto countryDto;
    }
 @Entity
    public class CountryDto {

        @Embedded
        @AttributeOverrides({ @AttributeOverride(name = "countryIdNumber", column = @Column(name = "CTRY_ID_NBR")),
                @AttributeOverride(name = "countryCodeName", column = @Column(name = "CTRY_CD_NM")),
                @AttributeOverride(name = "countryName", column = @Column(name = "CTRY_NM")),
                @AttributeOverride(name = "countryCurrencySuffixName", column = @Column(name = "CTRY_CUR_SUFFIX_NM")),
                @AttributeOverride(name = "countryCurrencyCodeName", column = @Column(name = "CTRY_CUR_CD_NM")) })
        private Country country;



        @OneToMany(mappedBy = "countryDto", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
        private List<LangDto> lang;
org.hibernate.AnnotationException: No identifier specified for entity: com.fedex.ftt.nexgen.dto.LangDto