Я пытаюсь вложить классы с помощью @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 ': подходящих редакторов или стратегии конверсии не найдено