Hi,
I created tables in MySQL: role tabel , object_label and role_object_label (links table)
I defined @ManyToMany and I gets exception. what the problem in my code?
@Entity
@Table(name = "object_label")
public class ObjectLabel implements Serializable {
private static final long serialVersionUID = 3475812350796110403L;
private String name;
public Long getId() { return id; }
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(precision = 10, unique = true, nullable = false, updatable = false)
public Long getId() {
return id;
}
@Override
public void setId( Long id ) {
this.id = id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
}
@Entity
@Table(name = "role")
public class Role implements Serializable {
public Long getId() { return id; }
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(precision = 10, unique = true, nullable = false, updatable = false)
public Long getId() {
return id;
}
@Override
public void setId( Long id ) {
this.id = id;
}
@ManyToMany( fetch = FetchType.EAGER )
@JoinTable(
name = "role_object_label", joinColumns = @JoinColumn(name = "role_id"),
inverseJoinColumns = @JoinColumn(name = "object_label_id"))
public Set<ObjectLabel> getObjectLabels(){
return this.objectLabels;
}
/**
* @param objectLabels the objectLabels to set
*/
public void setObjectLabels(Set<ObjectLabel> objectLabels) {
this.objectLabels = objectLabels;
}
private Set<ObjectLabel> objectLabels = new HashSet<ObjectLabel>();
}
in hibernate.cfg.xml defined:
<mapping class="com.myCompany.model.RoleObjectLabel" />
<mapping class="com.myCompany.model.ObjectLabel" />
I gets exception:
Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.sintecmedia.model.Role.objectLabels[com.myCompany.model.ObjectLabel]
Thanks! Rivki