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