Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一对一映射休眠_Java_Mysql_Spring_Hibernate_Hibernate Mapping - Fatal编程技术网

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;
    ...
}