Hibernate @ManyToOne

时间:2016-09-15 15:47:41

标签: java hibernate

可以使用hibernate @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有一个代码,不存在于表Atos

这是我的表格:

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 FROM IndicadorAtos t,Atos a其中t.cod_ato = a.cod_ato,但我需要从我的IndicadorAtos返回所有记录,并且使用此选择他只返回在Atos中有一个项目的所有itens。

TKS

1 个答案:

答案 0 :(得分:0)

  

可以使用hibernate @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
}