gpt4 book ai didi

java - org.hibernate.MappingException : property mapping has wrong number of columns

转载 作者:行者123 更新时间:2023-12-02 05:51:15 24 4
gpt4 key购买 nike

我练习了 spring 框架和数据库(PostgreSQL),并且我得到了 IntelliJ (模块 JPA)的表,当我尝试运行时遇到了这个异常。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: property mapping has wrong number of columns: com.whoim.bootloader.entitys.TblConversation.tblUsersByCreatorIdConversation type: com.whoim.bootloader.entitys.TblUsers

我通过 IntelliJ(模块 JPA)上的持久性生成此代码并通过 Lombok 进行重构

package com.whoim.bootloader.entitys;

import lombok.*;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Collection;

@Data
@Entity
@Table(name = "tbl_conversation", schema = "public", catalog = "d1fu1ri15o3ia3")
public class TblConversation {
@Id@Column(name = "id_conversation")
private int idConversation;
@Basic@Column(name = "conversation_title")
private String conversationTitle;
@Basic@Column(name = "creator_id_conversation")
private int creatorIdConversation;
@Basic@Column(name = "conversation_channel_id")
private String conversationChannelId;
@Basic@Column(name = "conversation_created_at")
private Timestamp conversationCreatedAt;
@Basic@Column(name = "conversation_updated_at")
private Timestamp conversationUpdatedAt;
@Basic@Column(name = "conversation_deleted_at")
private Timestamp conversationDeletedAt;

@ManyToOne
@JoinColumns({
@JoinColumn(name = "creator_id_conversation", referencedColumnName = "id_user", nullable = false, insertable = true, updatable = true),
@JoinColumn(name = "creator_id_conversation", referencedColumnName = "id_user", nullable = false)})
private TblUsers tblUsersByCreatorIdConversation;

@OneToMany(mappedBy = "tblConversationByDeletedConversationsConversationId")
private Collection<TblDeletedConversations> tblDeletedConversationsByIdConversation;
@OneToMany(mappedBy = "tblConversationByConversationIdMessages")
private Collection<TblMessages> tblMessagesByIdConversation;
@OneToMany(mappedBy = "tblConversationByConversationIdParticipants")
private Collection<TblParticipants> tblParticipantsByIdConversation;

}

最佳答案

我认为根据标准,您的映射应该如下:

    @Basic@Column(name = "creator_id_conversation", insertable=false, updatable=false)
private int creatorIdConversation;

@ManyToOne
@JoinColumn(name = "creator_id_conversation"
, referencedColumnName = "id_user", nullable = false)})
private TblUsers tblUsersByCreatorIdConversation;

关于java - org.hibernate.MappingException : property mapping has wrong number of columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56046295/

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