I am trying to nest classes with @Idclass and i am getting an error on the 3rd level.
so what I have:
@Entity
public class Foo{
@Id
private Integer FooNumber;
private boolean available;
public Foo(){}
}
first level - BarRepository works
@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
}}
second level @IdClass - first level nested @IdClass - BarRepo works fine
@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
}}
third - second level nested @IdClass - fails ;(
@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
}}
Caused by: java.lang.IllegalStateException: Cannot convert value of type 'java.lang.Integer' to required type 'com.tvh.parts.warehouse.wb3.storing.domain.Bar$BarId' for property 'bar': no matching editors or conversion strategy found