вложение @IdClass работает ... до 3-го уровня - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь вложить классы с помощью @Idclass и получаю сообщение об ошибке на 3-м уровне.

так что у меня есть:

@Entity 
public class Foo{

@Id
private Integer FooNumber;

private boolean available;
public Foo(){}
}

первый уровень - BarRepository работает

@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
    }}

второй уровень @IdClass - вложенный первый уровень @IdClass - BarRepo работает отлично

@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 - не работает; (

@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
    }}

Причина: java.lang.IllegalStateException: Невозможно преобразовать значение типа 'java.lang.Integer' в требуемый тип 'com.tvh.parts.warehouse.wb3.storing.domain.Bar $ BarId' для свойства 'bar ': подходящих редакторов или стратегии конверсии не найдено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...