java - org.hibernate.PropertyAccessException : Could not set field value [STRING] value by reflection for String

标签 java jpa many-to-many

是否@Embeddable@ManyToMany关系和附加列,适用于 String ?
我不使用 @Generated Value for @Id因为我的实体 ApplikationUser

@Id
@Column(length = 128)
private String applikationUserId;
按业务逻辑始终是 Id
这是我的代码:
@EmbeddedId
private ApplikationUserPopupMessageId applikationUserPopupMessageId;

@ManyToOne(fetch = FetchType.EAGER)
@MapsId("applikationUserId")
private ApplikationUser applikationUser;

@ManyToOne(fetch = FetchType.EAGER)
@MapsId("popupMessageId")
private PopupMessage popupMessage;

@Column(name = "gelesen")
private boolean gelesen = false;
@Embeddable
public class ApplikationUserPopupMessageId implements Serializable {

    @Column(name = "applikation_user_id")
    private String applikationUserId;

    @Column(name = "popup_message_id")
    private Long popupMessageId;
@Entity
@Table
public class PopupMessage {

    @Id
    @GeneratedValue
    @Column(length = 128)
    private Long messageId;

    private String title;
    private String message;

    @OneToMany(
            mappedBy = "applikationUser",
            cascade = CascadeType.ALL,
            orphanRemoval = true
    )
    private List<ApplikationUserPopupMessage> applikationUserPopupMessages = new ArrayList<>();
@Entity
public class ApplikationUser implements UserDetails {

    /**
     *
     */
    private static final long serialVersionUID = -5517804528054972083L;

    @Id
    @Column(length = 128)
    private String applikationUserId;

    @Column
    private String password;

    @ManyToOne
    @JoinColumn(name = "idRole")
    private Role role;

    private boolean enabled = true;

    @OneToMany(
            mappedBy = "popupMessage",
            cascade = CascadeType.ALL,
            orphanRemoval = true
    )
    private List<ApplikationUserPopupMessage> applikationUserPopupMessages = new ArrayList<>();
编辑 - 23.11.2020
关于缺乏兴趣,对我们来说似乎是可能的@EmbeddableString ?

最佳答案

实例化 applikationUserPopupMessageId:

@Entity
public class ApplikationUserPopupMessage {
  @EmbeddedId
  private ApplikationUserPopupMessageId applikationUserPopupMessageId = new ApplikationUserPopupMessageId();
}
那是 known issue

关于java - org.hibernate.PropertyAccessException : Could not set field value [STRING] value by reflection for String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64742481/

相关文章:

Spring数据、JPA和Hibernate : why does my object gets saved with the save statement removed?

entity-framework-4 - 如何在 Entity Framework 设计器中建立多对多关系

java - 用JPA重置MySql数据库的自增值

java - Transaction-scoped Persistence context 和 Extended Persistence context 有什么区别?

Java AWS SDK S3上传性能

java - 在 Java 中声明和引用字节数组的二维数组

java - 多对多 : MappingException: Could not determine type for: java. util.List

mysql - SQL 多对多 - 非常简单

java - 在 SpringBoot @Scheduled 中更新 Cron 表达式

java - 如何从InputStreamReader读取整数