gpt4 book ai didi

java - 我收到错误 : Invocation of init method failed; nested exception is org. hibernate.MappingException: Repeated column in mapping for entity

转载 作者:行者123 更新时间:2023-12-05 07:44:01 25 4
gpt4 key购买 nike

我得到错误:init 方法调用失败;嵌套异常是 org.hibernate.MappingException: Repeated column in mapping for entity: com.messagemanager.domain.User column: id (should be mapped with insert="false"update="false")

有我的实体:

@MappedSuperclass
public abstract class BaseEntity{

@Id
@Column(nullable = false, unique = true, name = "id", insertable = false, updatable = false)
@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}
}


@Entity
@Table(name = "User")
public class User extends BaseEntity implements Serializable{
@Column(name = UserFieldsKey.ID, length = 50, nullable = false)
private String name;

@Column(updatable = false, insertable = false)
@Transient
private List<Message> listMessage = new ArrayList<>();

public static class UserFieldsKey{
public static final String NAME = "name";
}

public User() {
}

@OneToMany(fetch = FetchType.EAGER, mappedBy = "user")
public List<Message> getListMessage() {
return listMessage;
}

public void setListMessage(List<Message> listMessage) {
this.listMessage = listMessage;
}


public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}


@Entity
@Table(name = "Message")
public class Message extends BaseEntity implements Serializable{
@Column(name = MessageFieldsKey.MESSAGE, length = 500, nullable = false)
private String message;

@ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name="user")
private User user;

@Column(name = "id_user")
private Long id_user;

public Long getId_user() {
return id_user;
}

public void setId_user(Long id_user) {
this.id_user = id_user;
}

public static class MessageFieldsKey{
public static final String MESSAGE = "mes";
}

public String getMessage() {
return message;
}

public User getUser() {
return user;
}

public Message() {
}

public Message(String message, User user) {
this.message = message;
this.user = user;
}

public void setMessage(String message) {
this.message = message;
}

public void setUser(User user) {
this.user = user;
}
}

有什么想法吗?

附言非常感谢!

最佳答案

看起来那是因为你有这个:

@ManyToOne(cascade=CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name="user")
private User user;

这将映射到 User.id;在 Message 中你已经有了一个 id 因为你正在扩展 BaseEntity

关于java - 我收到错误 : Invocation of init method failed; nested exception is org. hibernate.MappingException: Repeated column in mapping for entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43231143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com