嵌套@IdClass工作......达到第3级

时间:2018-04-30 14:29:07

标签: java hibernate jpa

我正在尝试使用@Idclass嵌套类,我在第3级遇到错误。

所以我有:

@Entity
@IdClass(Bar.BarId.class)
public class Bar{

@Id
private Integer barNumber;

@Id
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH})
private Foo foo;

public Bar(){}

//removed getters setters

static class BarId  implements Serializable {

        private Integer barNumber;
        private Integer foo;

        public BarId() {
           //JPA
        } //removed getters setters
    }}

第一级 - BarRepository工作

@Entity
@IdClass(WorksId.class)
public class Works{

@Id
private Integer worksNumber;

@Id
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH})
private Bar bar;

private boolean available;

public Works() {
    //JPA
}

static class WorksId implements Serializable {

        private Integer worksNumber;

        private Bar.BarId bar;

        public WorksId() {
            //JPA
        }}

第二级@IdClass - 第一级嵌套@IdClass - BarRepo工作正常

@Entity
@IdClass(Nope.NopeId.class)
public class Nope{

@Id
private Integer nopeNumber;

@Id
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH, CascadeType.DETACH})
private Works works;

private int weight;

public Nope() {
    //JPA
}
static class NopeId implements Serializable {

    private Integer nopeNumber;

    private Works.WorksId level;

    public NopeId() {
        //JPA
    }}

第三级 - 第二级嵌套@IdClass - 失败;(

MaxDate

引起:java.lang.IllegalStateException:无法将类型'java.lang.Integer'的值转换为属性'bar的必需类型'com.tvh.parts.warehouse.wb3.storing.domain.Bar $ BarId' ':找不到匹配的编辑器或转换策略

0 个答案:

没有答案