Java MySQL中的关系

Java MySQL中的关系,java,mysql,hibernate,entity-relationship,foreign-key-relationship,Java,Mysql,Hibernate,Entity Relationship,Foreign Key Relationship,因此,我试图找出MySQL的关系,我已经编写了代码,但它似乎不起作用,好像我在数据库中添加了一些东西,另一个表的foreighn键每次都给我NULL,我的关系代码是: 用户类别: @OneToMany(mappedBy="user") private Collection<Movie> movies; public Collection<Movie> getMovies() { return movies; } public void setMo

因此,我试图找出MySQL的关系,我已经编写了代码,但它似乎不起作用,好像我在数据库中添加了一些东西,另一个表的foreighn键每次都给我NULL,我的关系代码是:

用户类别:

    @OneToMany(mappedBy="user")
private Collection<Movie> movies;

    public Collection<Movie> getMovies() {
    return movies;
}
public void setMovies(Collection<Movies> movies) {
    this.movies = movies;
}
每次我添加一个新的电影(假定它与用户表连接)时,外键(user_id)在电影表中为空。为了总结我在这里要实现的目标,每次我想将电影添加到我的库中时,我都需要在数据库中显示该电影的人的用户id

谢谢

编辑:

每次尝试运行时,我都会收到此错误消息:

Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.PropertyValueException: not-null property references a null or transient value: entity.Movie.user
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:614)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:226)
at persistence.PersistenceUtil.persist(PersistenceUtil.java:26)
at main.CustomerConfig.main(CustomerConfig.java:47)

Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: entity.Movie.user
    at org.hibernate.engine.Nullability.checkNullability(Nullability.java:95)
    at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:313)
    at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
    at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
    at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:154)
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:110)
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:61)
    at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:645)
    at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:619)
    at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:623)
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:220)
创建数据并将其保存到数据库的代码:

System.out.println("Type the users's name please. ");
        String name = br.readLine();

        System.out.println("Type the movies name please. ");
        String mname = br.readLine();

        User user = new User(name);
        PersistenceUtil.persist(user);
        Movie movie = new Movie(mname);
        PersistenceUtil.persist(movie);
        System.out.println("User & movie names are created!");
正如错误所说,这个
电影
对象的user为null,您忘记了在其中设置用户。这就是它的外观:

Movie movie = new Movie(mname);
movie.setUser(user);
PersistenceUtil.persist(movie);

这是什么?我从未见过MySQL使用它来创建表之间的关系。我真的很好奇你是从哪里找到这个的。这是一个与Java相关的编程问题?
Movie movie = new Movie(mname);
PersistenceUtil.persist(movie);
Movie movie = new Movie(mname);
movie.setUser(user);
PersistenceUtil.persist(movie);