我有 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 : Failed to convert request element: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.Long' to required type 'com.kepler.portailclient.domain.model.Ecran' for property 'ecran'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.Long' to required type 'com.kepler.portailclient.domain.model.Ecran' for property 'ecran': no matching editors or conversion strategy found 2018-09-25 12:15:42.889 WARN 14216 --- [nio-8092-exec-8] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.Long' to required type 'com.kepler.portailclient.domain.model.Ecran' for property 'ecran'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'java.lang.Long' to required type 'com.kepler.portailclient.domain.model.Ecran' for property 'ecran': no matching editors or conversion strategy found
最佳答案
尝试这样的事情:
@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 - 无法保存实体可嵌入 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496955/