EcranChamp
的实体。@Entity
@IdClass(EcranChampId.class)
public class EcranChamp {
@Id
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ecran")
Ecran ecran;
@Id
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "champ")
Champ champ;
...
并且EcranChampId
@Embeddable
public class EcranChampId implements Serializable {
private Champ champ;
private Ecran ecran;
...
每次我尝试保存一个
EcranChamp
元素时,都会出现以下错误:
2018-09-25 12:15:42.889 WARN 14216 --- [nio-8092-exec-8] .w.s.m.s.DefaultHandlerExceptionResolver : 无法转换请求元素:org.springframework.beans.ConversionNotSupportedException: 无法将类型为 'java.lang.Long' 的属性值转换为 'com.kepler.portailclient.domain.model.Ecran' 所需的类型,属性为 'ecran'; 嵌套异常是 java.lang.IllegalStateException: 无法将类型为 'java.lang.Long' 的值转换为所需类型 'com.kepler.portailclient.domain.model.Ecran' 的属性 'ecran':找不到匹配的编辑器或转换策略 2018-09-25 12:15:42.889 WARN 14216 --- [nio-8092-exec-8] .w.s.m.s.DefaultHandlerExceptionResolver : 处理程序执行引起的已解决异常:org.springframework.beans.ConversionNotSupportedException: 无法将类型为 'java.lang.Long' 的属性值转换为 'com.kepler.portailclient.domain.model.Ecran' 所需的类型,属性为 'ecran'; 嵌套异常是 java.lang.IllegalStateException: 无法将类型为 'java.lang.Long' 的值转换为所需类型 'com.kepler.portailclient.domain.model.Ecran' 的属性 'ecran':找不到匹配的编辑器或转换策略
@IdClass
注解来指定实体的id类为EcranChampId
,因此必须将@Id
字段的类型设置为EcramChampId
。添加两个带有类型为Ecran
和Champ
的@Id
字段是不起作用的。 - Jesper