繁体   English   中英

org.hibernate.MappingException:无法确定类型:在表中:列:[org.hibernate.mapping.Column(卖家)]

[英]org.hibernate.MappingException: Could not determine type for: at table: for columns: [org.hibernate.mapping.Column(seller)]

我试图在其他问题中找到解决方案,但对我没有帮助。

这是一个小程序,有一些类。 我的问题出在 Product.class 和 User.class 之间的关系中。 但我不知道如何解决。 我收到此错误:

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: Could not determine type for: com.chana.beans.User, at table: shipment, for columns: [org.hibernate.mapping.Column(seller)]

这是代码:产品 class:

@Entity
@Table(name= "products")
public class Product {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    @Column
    private String title;
    private String description;
    @ManyToOne
    @JoinColumn(name="category_id")
    private Category category;
    private double price;
    @ManyToOne(targetEntity = User.class,  
            cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @Access(AccessType.PROPERTY)
    @JoinColumn(name="seller_id")
    private User seller;
    private String size;
    private String color;
    private String material;
    private int amount;

//getter and setter...

用户class:

@Data
@NoArgsConstructor
@Builder
@AllArgsConstructor
@Setter
@Getter
@Entity
@Table(name= "users")
public class User {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long id;
    @Column(name="first_name")
    private String firstName;
    @Column(name="last_name")
    private String lastName;
    private String Address;
    private String City;
    private String email;
    @Column(name="user_name")
    private String userName;
    private String password;
    @ElementCollection
    private List<Product> products;
    

错误的原因是什么,如何解决?

正如您可以在内部错误中看到的那样,您没有 map 关系的所有结束。

“无法确定类型:com.chana.beans.User,表:发货,列:[org.hibernate.mapping.Column(卖家)]”

此错误表明您在 User 和 Shipments 实体之间没有正确的关系映射。

顺便说一句:您似乎没有正确使用@ElementCollection - 此注释用于嵌入文档而不是实体,请使用@OneToMany。

使用@Data,您不需要@Getter 和@Setter——它是@Getter、@Setter、@EqualsAndHashcode 和@RequiredArgsConstructor 的快捷方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM