Order by

Alguém sabe como eu faço para quando obter a listagem de Produtor o nome da classe pessoaFisica e pessoaJuridica vim ordenado?

public class Produtor implements Serializable {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "ID")
	private Long id;

	@OneToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH })
	@JoinColumn(name = "ID_PESSOA_FISICA", insertable = true, updatable = true)
	private PessoaFisica pessoaFisica;

	@OneToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH })
	@JoinColumn(name = "ID_PESSOA_JURIDICA", insertable = true, updatable = true)
	private PessoaJuridica pessoaJuridica;

}
@Table(name="pessoa_fisica")
public class PessoaFisica extends Pessoa implements Serializable {
	
	
	@Column(name="CPF", unique=true, length=14)
	private String cpf;
	

}

Dá uma pesquisada sobre Criteria.

Exemplos:

https://docs.jboss.org/hibernate/orm/3.3/reference/pt-BR/html/querycriteria.html