gpt4 book ai didi

java - org.hibernate.MappingException : Could not determine type for: java. util.Set

转载 作者:IT老高 更新时间:2023-10-28 11:48:02 29 4
gpt4 key购买 nike

虽然这个问题被问了很多次,我已经使用了所有的建议,但我仍然收到这个错误。

User.java 是

@Entity
@Table(name = "USER")
public class User implements UserDetails, Serializable {

private static final long serialVersionUID = 2L;

@Id
@Column(name = "USER_ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "USERNAME")
private String username;
@Column(name = "PASSWORD")
private String password;
@Column(name = "NAME")
private String name;
@Column(name = "EMAIL")
private String email;
@Column(name = "LOCKED")
private boolean locked;
@OneToMany(cascade=CascadeType.ALL, fetch = FetchType.EAGER)
@ElementCollection(targetClass=Role.class)
@Column(name = "ROLE_ID")
private Set<Role> roles;

@Override
public GrantedAuthority[] getAuthorities() {
List<GrantedAuthorityImpl> list = new ArrayList<GrantedAuthorityImpl>(0);
for (Role role : roles) {
list.add(new GrantedAuthorityImpl(role.getRole()));
}
return (GrantedAuthority[]) list.toArray(new GrantedAuthority[list.size()]);
}

@Override
public boolean isAccountNonExpired() {
return true;
}

@Override
public boolean isAccountNonLocked() {
return !isLocked();
}

@Override
public boolean isCredentialsNonExpired() {
return true;
}

@Override
public boolean isEnabled() {
return true;
}

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public boolean isLocked() {
return locked;
}

public void setLocked(boolean locked) {
this.locked = locked;
}

@Override
public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

@Override
public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public void setRoles(Set<Role> roles) {
this.roles = roles;
}

public Set<Role> getRoles() {
return roles;
}
}

Role.java 是

@Entity
@Table(name="ROLE")
public class Role implements Serializable {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ROLE_ID")
private long id;
@Column(name="USERNAME")
private String username;
@Column(name="ROLE")
private String role;


public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getRole() {
return role;
}

public void setRole(String role) {
this.role = role;
}
}

这是我第一次尝试使用 JPA 进行 hibernate 注释。所以任何建议都会非常有帮助。

对于 hibernate ,pom.xml 的依赖项是:

    <dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.5.4-Final</version>
<type>pom</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.4-Final</version>
<type>jar</type>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.5.4-Final</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>3.1.0.GA</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.5.4-Final</version>
<type>jar</type>
<scope>compile</scope>
</dependency>

我不知道故障所在。

谢谢。

最佳答案

我在 @ManyToOne 列中遇到了同样的问题。它被解决了......以愚蠢的方式。我有公共(public) getter 方法的所有其他注释,因为它们被父类覆盖。但是最后一个字段被注释为私有(private)变量,就像我项目中的所有其他类一样。所以我得到了相同的 MappingException 没有原因。

解决方案:我将所有注释都放在公共(public) getter 方法中。我想,当私有(private)字段和公共(public) getter 的注释混合在一个类中时,Hibernate 无法处理这种情况。

关于java - org.hibernate.MappingException : Could not determine type for: java. util.Set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164123/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com