我正在尝试使用@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' ':找不到匹配的编辑器或转换策略