2016-09-15 97 views
0

它单曲可能创建一个地图休眠@ManyToOne就像这样:休眠@ManyToOne

public class IndicadorAtos { 
    @JsonIgnore 
    @Id 
    @Column(name="cod_ato_praticado") 
    private Integer codAtoPraticado; 
    @Column(name="descricao_ato") 
    private String ato; 


    @JoinColumn(name = "cod_ato", referencedColumnName = "cod_ato") 
    @ManyToOne 
    @Fetch(FetchMode.SUBSELECT) 
    private Atos atos; 

} 

但在某些情况下,我没有关系或是在我的桌子IndicadorAtos有一个代码,这不`吨existis表阿托斯

这是我的表:

create table IndicadorAtos (
    codAtoPraticado integer primary key, 
    ato varchar(250), 
    cod_ato integer 
); 

create table Atos(
    cod_ato integer primary key. 
    name varchar(250) 
) 

我尝试创建这个连接:

选择t来自IndicadorAtos t,Atos a其中t.cod_ato = a.cod_ato,但我需要返回我的IndicadorAtos中的所有记录,并且使用此选择,他只返回在Atos中包含一个项目的所有itens。

TKS

回答

0

它单曲可能创建一个地图休眠@ManyToOne

是;它被称为单向关系。

如果我正确理解您的问题,您需要从IndicadorAtos中选择所有条目,其中可能包含Atos的相关条目。您可以使用左实现这个连接如下:

SELECT t FROM IndicadorAtos t LEFT JOIN t.atos at 

前提是你必须定义的实体Atos,如:

@Entity 
public class Atos { 
    @Id @GeneratedValue 
    private int cod_ato; 

    private String name; 

    // getters and setters 
} 
相关问题