こんにちは、スタックオーバーフロー。 com.vlad9pa.springapp.entity.User:マップされていないクラスをターゲットと@OneToManyの使用または@ManyToMany :マップされていないクラスを対象とした@OneToManyまたは@ManyToManyの使用:
org.hibernate.AnnotationException: 私はhibrnate/JPAとのトラブルをしました、この例外が発生しました。
- ユーザー:役割は[com.vlad9pa.springapp.entity.Role]
私は3つのテーブル持っているID、ユーザ名、パスワードを。
インポート:ここ
import javax.persistence.*;
import java.util.Set;
が私のエンティティとhibernate.cfg.xmlのです: ユーザー:
@Entity
@Table(name = "users")
public class User {
private int id;
private String username;
private String password;
private Set<Role> roles;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Basic
@Column(name = "username")
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Basic
@Column(name = "password")
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = Role.class)
@JoinTable(name = "user_roles", joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
役割:
@Entity
@Table(name = "roles")
public class Role {
private int id;
private String name;
private Set<User> users;
@Id
@Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Basic
@Column(name = "name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "roles")
public Set<User> getUsers() {
return users;
}
public void setUsers(Set<User> users) {
this.users = users;
}
hibernate.cfg.xmlの:
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL9Dialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/e_shop</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="show_sql">false</property>
<property name="hibernate.current_session_context_class">thread</property>
<mapping class="com.vlad9pa.springapp.entity.Role"/>
<mapping class="com.vlad9pa.springapp.entity.User"/>
</session-factory>
はあなたがチェックしている(あなたがそうでなければ、「マップされていないエラー」を得る、あなたのモデルを持っているすべてのクラスのために、この行を追加する必要があります)[この](http://stackoverflow.com/questions/4956855/hibernate-problemあなたがエンティティクラスのすべてのインポートを追加できますか? –
はい、助けてくれませんでしたか? – Vlad9pa
は100%確実です。エンティティクラスのすべてのインポートを追加できますか? –