[HQL]Hibernate - Dúvida no JOIN em duas tabelas

Como faço o simples join em duas tabelas?

Por exemplo, tenho a Classe CarroPopular com id e marca e tenho a classe CarroLuxo com id e marca também, como retorno numa consulta a lista com todas as marcas de carro disponíveis em CarroPopular e CarroLuxo?

Tentei colocar o HQL assim mas não dá certo:

Sei que tá errado, algúem podia dar uma luz?

nao ta faltando o inner no seu join?

Depende de como voce modelou seu dominio. Se não existir nenhum relacionamento entre CarroLuxo e CarroPopular não tem como voce usar o join com HQL. Talvez com subqueries, mas eu teria que conhecer seu dominio pra te responder.

Bom… :roll: os dados de uma tabela não tem nenhum relacionamento com a outra tabela… Se os atibutos fossem do tipo String seria apenas pegar pegar os dados de marca de veículos que estão cadastrados em CarroPopular e cruzar com os dados de marca de CarroLuxo, tipo uma operação de algebra relacional mesmo, bem besta, só pegar os dados de um atributo de uma tabela e unir com o de outra, tem algum jeito?

Jovem,

para facilitar o entendimento de todos posta as classes com os respectivos mapeamentos CarroPopular e CarroLuxo.

abs,

Classe Veículo

[code]
@MappedSuperclass
public class Veiculo {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name="marca")
private String marca;

...gets e sets...

}[/code]
Classe VeículoPopular

@Entity(name="veiculopopular")
public class VeiculoPopular extends Veiculo implements Serializable { }

Classe VeiculoLuxo

@Entity(name="veiculoluxo")
public class VeiculoLuxo extends Veiculo implements Serializable { }

Isso gera duas tabelas, veiculopopular e veiculoluxo. Por HQL já consegui puxar a lista de marcas das tabelas em separado, assim:

listaMarca = sessao.createQuery(
                        "select distinct vL.marca from model.beans.VeiculoLuxo vL" +
                        " where vL.marca is not null order by vL.marca asc"
                        ).list();

Mas queria ajuda num código HQL que permitisse obter a lista de marcas de VeiculoLuxo e VeiculoPopular e retornasse tudo junto (JOIN) numa lista só.
É isso… Desde já, obrigado!

Quer dizer que no Hibernate eu só posso fazer Join de atributos relacionados? Por exemplo, como na álgebra relacional, não posso apenas multiplicar as tuplas de um atributo de uma tabela por outro atributo de outra tabela? :shock: