java - 无法保存实体可嵌入 ID
问题描述
我有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] .wsmsDefaultHandlerExceptionResolver:无法转换请求元素:org.springframework.beans.ConversionNotSupportedException:无法转换“java”类型的属性值.lang.Long' 为属性 'ecran' 所需的类型 'com.kepler.porttailclient.domain.model.Ecran';嵌套异常是 java.lang.IllegalStateException:无法将类型“java.lang.Long”的值转换为属性“ecran”所需的类型“com.kepler.portaiclient.domain.model.Ecran”:找不到匹配的编辑器或转换策略2018-09-25 12:15:42.889 WARN 14216 --- [nio-8092-exec-8] .wsmsDefaultHandlerExceptionResolver:由处理程序执行引起的已解决异常:org.springframework.beans.ConversionNotSupportedException:无法将类型“java.lang.Long”的属性值转换为属性“ecran”所需的类型“com.kepler.porttailclient.domain.model.Ecran”;嵌套异常是 java.lang.IllegalStateException:无法将类型“java.lang.Long”的值转换为属性“ecran”所需的类型“com.kepler.portaiclient.domain.model.Ecran”:找不到匹配的编辑器或转换策略
解决方案
尝试这样的事情:
@Entity
@Table(name = "<entity name>")
public class EcranChamp {
@EmbeddedId
@AttributeOverrides({ @AttributeOverride(name = "id_ecran", column = @Column(name =
"<column name>", nullable = false)),
@AttributeOverride(name = "id_champ", column = @Column(name = "<column name>", nullable = false)) })
EcranChampId id
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_ecran")
Ecran ecran;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_champ")
Champ champ;
//getters & setters
}
@Embeddable
public class EcranChampId implements Serializable {
@Column(name = "id_champ", nullable = false)
private Long id_champ;
@Column(name = "id_ecran", nullable = false)
private Long id_ecran;
//getters & setters
}
推荐阅读
- java - 如何卸载以前使用 jar 文件安装的 Netbeans 8.2 ide?
- docusignapi - 如何在多个文档上应用相同的 EnvelopeTabs
- jquery - jquery创建对象动态不起作用
- c# - 在.Net Mvc C#中递归执行的动作过滤器
- speex - 如何将 .wav 转换为 .spx(speex) 文件
- javascript - Nuxt js客户端特定布局加载
- javascript - 如何将文件从 URL 保存到 blob
- azure-functions - Power 应用程序中的 Azure 函数响应返回真/假而不是值
- android - 使用 TensorflowInterfenceInterface 方法时无法解析方法“feed”
- gerrit - Gerrit 中没有修改的更改