Problemstellung: Country
haben Sammlung Beziehung mit State
. Ein Land holen, das alle seine Zustände damit verbunden bekommt. Es ist in vielen Fällen erwünscht. Jetzt in einem gegebenen Fall habe ich beide Land id
und Zustand id
, und wenn Landfilterung mit Zustand Identifikation holen, ist es möglich, einzelnes State
in Country
zu erhalten?Java-Hibernate-Auflistung Mapping: Nicht Filterung specfic Sammlung Wert
Country.class
@Entity
@Repository
@Table(name="COUNTRY")
class Country implements Serializable{
@Id
@GeneratedValue(startegy=GenerationType.AUTO)
private long id;
@OneToMany(mappedBy="country", cascade={javax.persistence.CascadeType.ALL}, fetch=FetchType.EAGER)
private java.util.Set<State> states;
//Getters and setters
}
State.class
@Entity
@Repository
@Table(name="STATE")
class State implements Serializable{
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id", nullable=false, unique=true, updatable=true)
private long @Id
@ManyToOne
@JoinColumn(name="id")
private Country country;
//Getter and setter
}
Ich habe mit folgenden Abfrage versucht:
//This query works great when used in SQL editor. Getting one state
select * from country left join state ON country.id = state.id and state.id=3
//Tried following
setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
über SQL-Abfrage und erstellt Kriterien, aber ich bekomme alle Staaten. Oder dieses Problem kann gelöst werden? Haben wir bessere Alternativen?