Order by + inner join + hibernate (RESOLVIDO)

Ola pessoal. tenho duas tabelas:

<Grupo>
-id_grupo
-nome

<Sinal>
-id_sinal
-id_grupo (FK)
-descricao

e tenho as duas classes correspondentes:

//Sinal.java
@Entity
@Table(name = "sinal", catalog = "datagennoPR")
public class Sinal implements java.io.Serializable {

	private Integer idSinal;
	private GrupoSinal grupoSinal;
	private String descricao;

	public Sinal() {
	}

	public Sinal(GrupoSinal grupoSinal, String descricao) {
		this.grupoSinal = grupoSinal;
		this.descricao = descricao;
	}


	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id_sinal", unique = true, nullable = false)
	public Integer getIdSinal() {
		return this.idSinal;
	}

	public void setIdSinal(Integer idSinal) {
		this.idSinal = idSinal;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@Fetch(FetchMode.JOIN)
	@JoinColumn(name = "id_grupo", nullable = false)
	public GrupoSinal getGrupoSinal() {
		return this.grupoSinal;
	}

	public void setGrupoSinal(GrupoSinal grupoSinal) {
		this.grupoSinal = grupoSinal;
	}

	@Column(name = "descricao", nullable = false, length = 65535)
	public String getDescricao() {
		return this.descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	
}
//GrupoSinal.java
@Entity
@Table(name = "grupo_sinal", catalog = "datagennoPR")
public class GrupoSinal implements java.io.Serializable {

	private Integer idGrupo;
	private String nome;
	private Set<Sinal> sinals = new HashSet<Sinal>(0);

	public GrupoSinal() {
	}

	public GrupoSinal(String nome) {
		this.nome = nome;
	}

	public GrupoSinal(String nome, Set<Sinal> sinals) {
		this.nome = nome;
		this.sinals = sinals;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "id_grupo", unique = true, nullable = false)
	public Integer getIdGrupo() {
		return this.idGrupo;
	}

	public void setIdGrupo(Integer idGrupo) {
		this.idGrupo = idGrupo;
	}

	@Column(name = "nome", nullable = false, length = 45)
	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "grupoSinal")
	public Set<Sinal> getSinals() {
		return this.sinals;
	}

	public void setSinals(Set<Sinal> sinals) {
		this.sinals = sinals;
	}

}

como faço para que quando eu for listar a tabela Sinal ela vier ordenada pelo nome do grupo?
eu consegui que ela viesse ordenada pelo id do grupo.

eh isso… se alguem puder me ajudar. …

up

eu resolvo este tipo de caso no hql ou na criteria! 8)

Criteria c = session.createCriteria(Sinal.class); c.createAlias("grupoSinal", "grupo"); c.addOrder(Order.asc("grupo.nome")); List<Sinal> sinais = c.list();Assim ela está ordenada pelo nome do grupo.

Blz? Flw! :thumbup:

eh isso msm juliano! brigadao parceiro
fica com Deus :wink: