//$Id$
package org.hibernate.test.annotations.onetomany;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.annotations.Immutable;
/**
* @author Emmanuel Bernard
*/
@Entity
class City {
private Integer id;
private String name;
private List<Street> streets;
private List<Street> mainStreets;
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@OneToMany(mappedBy = "city")
@OrderBy("streetNameCopy, id")
public synchronized List<Street> getStreets() {
return streets;
}
public void setStreets(List<Street> streets) {
this.streets = streets;
}
@OneToMany()
@JoinColumn(name = "mainstreetcity_id")
@ForeignKey(name = "CITYSTR_FK")
@OrderBy
@Immutable
public List<Street> getMainStreets() {
return mainStreets;
}
public void setMainStreets(List<Street> streets) {
this.mainStreets = streets;
}
public void addMainStreet(Street street) {
if ( mainStreets == null ) mainStreets = new ArrayList<Street>();
mainStreets.add( street );
}
}