Dobry den,

jde vlastne o vztah one-to-many, kde many je dve. Takze owning side zde musi byt entita Host:

@Entity
public class Pokoj {

    @OneToOne(mappedBy = "pokoj")
    private Host host1;
    @OneToOne(mappedBy = "pokoj")
    private Host host2;
    ...
}

@Entity
public class Host {

    @OneToOne
    private Pokoj pokoj;
    ...
}

Nebo klasicky:

@Entity
public class Pokoj {

    @OneToMany(mappedBy = "pokoj")
    private List<Host> hosts;
    ...
}

Z.T.
--
Zdenek Tronicek
Department of Computer Science and Engineering
Prague                   tel: +420 2 2435 7410
http://cs.felk.cvut.cz/~tronicek


Quoting Ondřej Žižka <[EMAIL PROTECTED]>:

Zdravím,

prosím poraďte - jak se standardně nakládá s dvěma referencemi na stejný typ Entity?



Řekněme mám hotel a na pokoji bydlí dva hosté.

--------------------------------------------------------------------------------
class Pokoj {
    private Host host1, host2;
}
--------------------------------------------------------------------------------

Host má být samostatná entita, tj. nejde @Embedded.

Pokud to vezmu jako @OneToOne, tak mě to vede k následujícímu:

--------------------------------------------------------------------------------
@Entity
@Table( name="hoste" )
public class Host {

  @OneToOne( mappedBy = "host1" )
  @OneToOne( mappedBy = "host2")
  private Pokoj pokoj;
  ...
}
--------------------------------------------------------------------------------

Což pochopitelně nejde.
Já ale chci mít možnost zjistit, na kterém pokoji host aktuálně je.

Jak se mám tedy s tímto vypořádat? Musím přidat jednu další property?
Nebo to přes JPA nějak jde? Jak?



Díky, Ondra




Odpovedet emailem