如何使用FetchType.EAGER

时间:2015-01-14 11:49:26

标签: java hibernate jpa orm hibernate-mapping

我无法从DB加载具有相对映射对象的对象。可能我的“地图系统”是错误的。

在DB中保存对象(及其相对映射对象)时,一切正常,因此对象似乎已正确映射。

Utente 是我的“主”对象

   public class Utente implements Serializable{
        .......    
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "id_utente", unique = true, nullable = false)
        private Integer idUtente;    
        .......

我还有另一个名为Autenticazione的对象,我将Autenticazione链接到Utente

public class Autenticazione implements Serializable{    
    ....
    @OneToOne(targetEntity=Utente.class)
    @JoinColumn(name="utente", referencedColumnName="id_utente")    
    private Utente utente;
    ...

当我从db获取Utente对象时,我想得到它的Autenticazione对象。我尝试了一些代码(这里没有发布以避免混淆),但我找不到解决方案。

1 个答案:

答案 0 :(得分:2)

您还需要添加Utente与Autenticazione之间的关联:

public class Utente implements Serializable{
    .......    
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id_utente", unique = true, nullable = false)
    private Integer idUtente;    
    .......

    @OneToOne(mappedBy = "utente")
    private Autenticazione autenticazione;

确保使用辅助方法设置关联的两侧,例如应添加到Utente的方法:

    public void addAutenticazione(Autenticazione autenticazione) {
        autenticazione.setUtente(this);
        this.autenticazione = autenticazione;
    }