Java 一对一映射休眠
我有两个实体(用户、汽车)。有人能告诉我如何设置这个一对一映射吗。我的代码不工作。错误:Java 一对一映射休眠,java,mysql,spring,hibernate,hibernate-mapping,Java,Mysql,Spring,Hibernate,Hibernate Mapping,我有两个实体(用户、汽车)。有人能告诉我如何设置这个一对一映射吗。我的代码不工作。错误:org.hibernate.AnnotationException:hiber.model.Car.user中的未知映射,引用的属性未知:hiber.model.user.Car 用户实体包含加入mysql列的Car-Car字段carId。此列是外键与cars表中的id链接 @Entity @Table(name = "users") public class User { ...
org.hibernate.AnnotationException:hiber.model.Car.user中的未知映射,引用的属性未知:hiber.model.user.Car
用户实体包含加入mysql列的Car-Car字段carId。此列是外键与cars表中的id链接
@Entity
@Table(name = "users")
public class User {
...
@OneToOne
@JoinColumn(name = "carId")
private Car car;
...
}
汽车实体包含用户字段
@Entity
@Table(name = "cars")
public class Car {
...
@OneToOne(mappedBy = "car")
private User user;
...
}
public class Main {
...
UserService userService = context.getBean(UserService.class);
CarService carService = context.getBean(CarService.class);
User user1 = new User("User1", "Lastname1", "user1@mail.ru");
Car car1 = new Car("Car", 1);
carService.add(car1);
user1.setCar(car1);
userService.add(user1);
...
}
@服务和@Repository类:
public class UserServiceImpl {
...
@Autowired
private UserDao userDao;
public void add(User user) {
userDao.add(user);
}
...
}
没有地图,一切都正常。实体分别写入数据库
public class UserDaoImpl {
...
@Autowired
private SessionFactory sessionFactory;
public void add(User user) {
System.out.println(user.toString());
sessionFactory.getCurrentSession().save(user);
}
...
}
public class CarServiceImpl {
...
@Autowired
private CarDao carDao;
public void add(Car car) {
carDao.add(car);
}
...
}
public class CarDaoImpl {
...
@Autowired
private SessionFactory sessionFactory;
public void add(Car car) {
sessionFactory.getCurrentSession().save(car);
}
...
}
试着这样做:
@Entity
@Table(name = "users")
public class User {
...
@OneToOne
@JoinColumn(name = "carId")
private Car car;
...
}
@Entity
@Table(name = "cars")
public class Car {
...
@OneToOne(mappedBy = "car")
@JoinColumn(name = "userId")
private User user;
...
}