Join w JPA

0

Witam,

Nie wiem jak zbudować zapytanie korzystając z JPA.

Stworzyłem jednokierunkową relacje OneToMany między tabelami: województwo oraz miasto. Oczywiście województwo może posiadać wiele miast.
Tabela z miastami posiada ID województwa.
Jednakże podczas wyświetlania rekordów (miast), nie chcę wypisywać w kolumnie "województwo" jego ID tylko nazwę... i tego właśnie nie wiem jak zrobić...

Województwo entity bean:

public class Province {

    @Id
    private int id;

    private String name;

    @OneToMany(cascade=(CascadeType.ALL))
    @JoinColumn(name="ID_PROVINCE")
    private List<City> cities = new ArrayList<City>();

    (...)
}

Miast entity bean:

public class City implements Serializable {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int id;

    private String name;

    private int id_province;

    private String population;

    (...)
}

Metoda pobierająca miasta z bazy:

public List<City> getAllCities() {
        Query query = entityManager.createQuery("SELECT c FROM City c");
        List cities = query.getResultList();
        
        return cities;
}
0

private int id_province;

zamiast
@ManyToOne
private Province province;

to świadome działanie?

Jak zmapujesz dwukierunkowo to hql będzie wygladął:
"from City c left join c.province"

0

ahaa, czyli bez relacji dwukierunkowej nie mogę tego zrobić?

1 użytkowników online, w tym zalogowanych: 0, gości: 1