我尝试了我在互联网上找到的所有内容,但它不想工作。我必须实体:用户和汽车。它们都在 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] 删除。
我来说两句