पर अनाथ बच्चों को नहीं हटाता। टीम team_ से team2_0_ रूप team_.team_name चयन team_.id,:हाइबरनेट मैं कई संबंधों के लिए बहुत सरल एक निम्नलिखित है OneToMany
@Entity(name = "PLAYER")
@Access(AccessType.PROPERTY)
public class Player implements Serializable{
private int id;
private String name;
@Id
@Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name = "player_name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
return id == ((Player)obj).id;
}
@Override
public int hashCode() {
return id;
}
}
मैं एक बहुत ही सरल कोड चलाएँ:
Team team = createTeam(3) // creates team with 3 players ids={1,2,3}
session.saveOrUpdate(team);
...
private Team createTeam(int players) {
Team team = new Team();
team.setName("Bears");
team.setId(1);
for(int i=1 ; i<=players; ++ i){
Player player = new Player();
player.setId(i);
player.setName("Player"+i);
team.addPlayer(player);
}
return team;
}
और मैं उम्मीद के रूप में निम्नलिखित हैं:
- हाइबरनेट जहां team_.id =?
- हाइबरनेट: प्लेयर_.आईडी, player_.player_name को प्लेयर 2_1_ के रूप में प्लेयर प्लेयर__1_ से चुनें जहां player_.id =?
- हाइबरनेट: प्लेयर_.आईडी, player_.player_name को प्लेयर 2_1_ के रूप में प्लेयर प्लेयर__1_ से चुनें जहां player_.id =?
- हाइबरनेट: प्लेयर_.आईडी, player_.player_name को प्लेयर 2_1_ के रूप में प्लेयर प्लेयर__1_ से चुनें जहां player_.id =?
- हाइबरनेट: टीम में डालने (TEAM_NAME, आईडी) मूल्यों
- हाइबरनेट (,?): (?) खिलाड़ी (PLAYER_NAME, आईडी) मूल्यों
- हाइबरनेट में दर्ज करें: खिलाड़ी (PLAYER_NAME, आईडी में डालें) मान (?,?)
- हाइबरनेट: प्लेयर (प्लेयर_नाम, आईडी) मान (?,?)
- हाइबरनेट: प्लेयर सेट TEAM_ID = अपडेट करें? आईडी = कहाँ? हाइबरनेट: प्लेयर सेट TEAM_ID = अपडेट करें? आईडी = कहाँ? हाइबरनेट: प्लेयर सेट TEAM_ID = अपडेट करें? आईडी = कहाँ?
फिर बाद में मुझे क्या करना:
Team team = createTeam(2) // creates team with 2 player ids={1,2}
session.saveOrUpdate(team);
और उम्मीद अनाथ खिलाड़ियों हटाए जाने के लिए, लेकिन मैं मिलता है:
- हाइबरनेट: चुनिंदा team_.id, team_.team_name टीम से team2_0_ के रूप में team_ जहां team_.id =?
- हाइबरनेट: प्लेयर_.आईडी, player_.player_name को प्लेयर 2_1_ के रूप में प्लेयर प्लेयर__1_ से चुनें जहां player_.id =?
- हाइबरनेट: प्लेयर_.आईडी, player_.player_name को प्लेयर 2_1_ के रूप में प्लेयर प्लेयर__1_ से चुनें जहां player_.id =?
- हाइबरनेट: प्लेयर सेट करें TEAM_ID = null जहां TEAM_ID =?
- हाइबरनेट: प्लेयर सेट TEAM_ID = अपडेट करें? आईडी = कहाँ?
- हाइबरनेट: प्लेयर सेट TEAM_ID = अपडेट करें? आईडी = कहाँ?
जो अनाथ खिलाड़ी (आईडी = 3) डिस्कनेक्ट हो जाता है लेकिन हटाया नहीं जाता है ... कोई विचार जो मैं गलत करता हूं?
'createTeam()' विधि क्या कर रही है? – dcernahoschi
खिलाड़ियों के साथ एक टीम बनाता है –
यह संबंधित हो सकता है या नहीं, लेकिन हम इसे HSQL –