未知的 mappingBy in:... 引用的属性未知

爱尼生

我尝试了我在互联网上找到的所有内容,但它不想工作。我必须实体:用户和汽车。它们都在 hiber.model 包中。在调用下面的代码后,我得到Unknown mappedBy in: hiber.model.User.car, referenced property unknown: hiber.model.Car.user. 但是当我删除mappedBy选项时,我得到@OneToOne or @ManyToOne on hiber.model.User.car references an unknown entity: hiber.model.Car. 这两个类都放入了属性。它可以是什么?这段代码已经像在互联网上的每个站点上一样。github上的项目

@Entity
@Table(name = "users")
public class User {

   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long id;

   @Column(name = "name")
   private String firstName;

   @Column(name = "last_name")
   private String lastName;

   @Column(name = "email")
   private String email;

   @OneToOne(mappedBy = "user")
   private Car car;

Constructors, getters, setters...
}

 @Entity
    @Table
    public class Car {
    
        @Id
        @Column
        private String model;
    
        @Column
        private String series;
    
        @OneToOne
        @JoinColumn(name = "id")
        private User user;

Getters, setters...
}
恩曼纽尔·罗德里格斯·帕斯

复制你的 Github 项目,我可以看到你有这个 Bean,它抛出了异常:

@Bean(name = "ses")
public LocalSessionFactoryBean getSessionFactory() {
    LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();
    factoryBean.setDataSource(getDataSource());

    Properties props = new Properties();
    props.put("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
    props.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
    props.put("hibernate.dialect", env.getProperty("hibernate.dialect"));

    factoryBean.setHibernateProperties(props);
    factoryBean.setAnnotatedClasses(Car.class);
    factoryBean.setAnnotatedClasses(User.class);
    return factoryBean;
}

这里的问题是,当您两次调用 factoryBean.setAnnotatedClasses 时,您正在用第二个类覆盖您设置的第一个类。因此,当您映射 User 时,您不再映射 Car。您需要像这样传递您将使用的每个类:

factoryBean.setAnnotatedClasses(Car.class, User.class);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章