简体   繁体   English

休眠@ManyToOne

[英]Hibernate @ManyToOne

It`s possible to create one map with hibernate @ManyToOne just like this: 可以使用休眠@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;

}

But in some cases I dont have association or in my table IndicadorAtos have one code, that don`t existis in table Atos 但是在某些情况下,我没有关联,或者在我的表中IndicadorAtos只有一个代码,在表Atos中不存在

this is my tables: 这是我的桌子:

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

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

I try to create this join: 我尝试创建此联接:

Select t FROM IndicadorAtos t , Atos a where t.cod_ato = a.cod_ato, but I need to return all records from my IndicadorAtos, and with this select he only return all itens that have one item in Atos. 选择t FROM IndicadorAtos t,Atos a,其中t.cod_ato = a.cod_ato,但是我需要从我的IndicadorAtos返回所有记录,并且使用此选择,他仅返回在Atos中具有一项的所有itens。

tks ks

It`s possible to create one map with hibernate @ManyToOne 可以使用休眠@ManyToOne创建一张地图

Yes; 是; it is called unidirectional relationship. 这称为单向关系。

If I understood your question properly, you want to select all entries from IndicadorAtos with possibly associated entries from Atos . 如果我正确理解了您的问题,那么您希望选择IndicadorAtos所有条目以及可能来自Atos相关条目。 You can achieve this by using left join as follows: 您可以按如下所示使用左连接来实现此目的:

SELECT t FROM IndicadorAtos t LEFT JOIN t.atos at

provided that you have an entity Atos defined like: 前提是您有一个实体Atos定义如下:

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

    private String name;

    // getters and setters
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM