Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.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 - Fatal编程技术网

Java 春天休息冬眠一天一天

Java 春天休息冬眠一天一天,java,mysql,spring,hibernate,Java,Mysql,Spring,Hibernate,我正在尝试创建一个用户表,该表使用用户名作为外键,具有OneToMany关系,但是ManyTone关系中的username字段每次都显示为Null 关系: User: @OneToMany(targetEntity = Authority.class, cascade=CascadeType.ALL, mappedBy="username") private Collection<Authority> authorities Authority: @Co

我正在尝试创建一个用户表,该表使用用户名作为外键,具有OneToMany关系,但是ManyTone关系中的username字段每次都显示为Null

关系:

User:

    @OneToMany(targetEntity = Authority.class, cascade=CascadeType.ALL, mappedBy="username")
    private Collection<Authority> authorities

Authority:

    @Column(nullable = false, name="username")
    @JoinColumn(name="user_username")
    String username;

您的
JoinColumn
应该是:

@JoinColumn(name="username")

这是因为在
Authority
实体中将字段标识为
username

我认为原因是从多方面到一方面,您必须使用User对象而不是字符串。这是我尝试过的,它是有效的

//使用者

@OneToMany(targetEntity = Authority.class, fetch = FetchType.EAGER, mappedBy = "user")
private Collection<Authority> authorities;
结果:


希望这有帮助

一个简单的答案出现在JPA文档中

使用中

@OneToMany(targetEntity = Authority.class , cascade = CascadeType.ALL)
@JoinColumn(name="username", referencedColumnName="username")
private List<Authority> authorities

据我所知,您希望在表“user”中使用“username”列作为主键,在表“authority”中,您将在表“user”中使用“username”列作为外键?!或者在表“user”中,您的主键是“id”,“username”只是唯一的?!用户中的用户名是唯一的,我在一些文档和其他帖子中看到了这一点,但是我已经习惯于使用字符串了。
@ManyToOne
@JoinColumn(name="username", referencedColumnName = "username")
private User user;
@OneToMany(targetEntity = Authority.class , cascade = CascadeType.ALL)
@JoinColumn(name="username", referencedColumnName="username")
private List<Authority> authorities
@Column(nullable = false)
String username;