Hallo,
ich habe gerade damit angefangen, mit Hibernate rumzuspielen. Ich hab auch schon in den Tutorials gelesen.
Irgendwas haut aber mit meinen Beziehungen nicht hin.
Zuerst mal die Situation. Ich möchte 2 Tabellen haben: Player und Team. Diese sollen über eine n-1 Beziehung miteinander verknüpft sein. Heißt also, ich trage das Team als Foreign Key in die Player ein.
Mit Hibernate sieht das bei mir im Moment so aus:
Team:
Player:
Wenn ich jetzt in meine main-Methode ein Team hinzufügen will und die Session starte, kommt folgender Fehler:
In der hibernate.cfg.xml stehen nur die Verbindungsdaten und das zu mappende Package und die beiden Klassen.
Ich hoffe, es ist nicht zu unübersichtlich und ihr könnt mir einen Tipp geben.
Gruß, Gilbert
ich habe gerade damit angefangen, mit Hibernate rumzuspielen. Ich hab auch schon in den Tutorials gelesen.
Irgendwas haut aber mit meinen Beziehungen nicht hin.
Zuerst mal die Situation. Ich möchte 2 Tabellen haben: Player und Team. Diese sollen über eine n-1 Beziehung miteinander verknüpft sein. Heißt also, ich trage das Team als Foreign Key in die Player ein.
Mit Hibernate sieht das bei mir im Moment so aus:
Team:
Code:
@Entity
@Table(name="TEAM")
public class Team implements Serializable{
@Column @Id
private String country;
private Set<Player> players = new HashSet<Player>();
private Team(){}
public Team(String country){
this.country = country;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
[b]@OneToMany(mappedBy = "team", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "team")[/b]
public Set<Player> getPlayers(){
return players;
}
public void setPlayers(Set<Player> players){
this.players = players;
}
Player:
Code:
@Entity
@Table (name="PLAYER")
public class Player implements Serializable {
private Long Id;
private String firstName;
private String lastName;
private Team team;
[b]@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name="country")[/b]
public Team getTeam() {
return team;
}
public void setTeam(Team team) {
this.team = team;
}
// @Id @GeneratedValue(strategy=GenerationType.SEQUENCE)
public Long getId() {
return Id;
}
private void setId(Long id) {
Id = id;
}
//restliche getter und setter
}
Wenn ich jetzt in meine main-Methode ein Team hinzufügen will und die Session starte, kommt folgender Fehler:
Code:
org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: TEAM, for columns: [org.hibernate.mapping.Column(players)]
In der hibernate.cfg.xml stehen nur die Verbindungsdaten und das zu mappende Package und die beiden Klassen.
Ich hoffe, es ist nicht zu unübersichtlich und ihr könnt mir einen Tipp geben.
Gruß, Gilbert