He creado dos granos de usuario y VirtualDomain con muchos a muchoscómo escribir consulta de unión en hibernación
@Entity
@Table(name = "tblUser")
public class User implements Serializable {
private Long id;
private String username;
private Set<VirtualDomain> virtualdomainset;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "username", length = 50, nullable = false)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@ManyToMany(targetEntity = VirtualDomain.class, cascade = {CascadeType.PERSIST},fetch=FetchType.EAGER)
@JoinTable(name = "tblUserDomainRel", joinColumns = @JoinColumn(name = "userid"), inverseJoinColumns = @JoinColumn(name = "domainid"))
public Set<VirtualDomain> getVirtualdomainset() {
return virtualdomainset;
}
public void setVirtualdomainset(Set<VirtualDomain> virtualdomainset) {
this.virtualdomainset = virtualdomainset;
}
}
@Entity
@Table(name = "tblVirtualDomain")
public class VirtualDomain {
private Long id;
private String domainname;
private Set<User> userset;
@Id
@JoinColumn(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name = "domain_name")
public String getDomainname() {
return domainname;
}
public void setDomainname(String domainname) {
this.domainname = domainname;
}
@ManyToMany(cascade = {CascadeType.ALL},fetch=FetchType.EAGER, mappedBy = "virtualdomainset", targetEntity = User.class)
public Set<User> getUserset() {
return userset;
}
public void setUserset(Set<User> userset) {
this.userset = userset;
}
}
cómo obtener los datos de usuario, como nombre de usuario relacionada con el dominio particular a través de hibernación.
hola Blake. por favor, ayúdenme Cuando utilicé esta consulta me está dando el error java.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover (Lantlr/RecognitionException; Lantlr/collections/impl/BitSet;) V – Jugal
I ' Si editó la consulta, no debería haber ningún Usuario en la consulta. –
su consulta editada parece correcta, pero solo quiero el campo de nombre de usuario, así que cuando agrego una cláusula de selección como, por ejemplo, seleccione u.nombre de usuario, me da el error org.hibernate.QueryException: búsqueda especificada de unión, pero el propietario de la asociación obtenida no presente en la lista de selección – Jugal