Поле присоединенной базы данных Spring Hibernate access - PullRequest
1 голос
/ 24 сентября 2011

таблиц моей базы данных:

cities(id serial, name varchar(40);
weather(id serial, city_id int, temp int, date date)

towns.id = weather.city_id

Весной у меня такой же POJO, как у полей в базе данных.

например, City.java:

@Entity
@Table(name="CITIES")
public class City {

    @Id
    @Column(name="ID")
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "CITIES_ID_SEQ")
    @SequenceGenerator(name = "CITIES_ID_SEQ", sequenceName="cities_id_seq", allocationSize=1)
    private Integer id;

    @Column(name="NAME")
    private String name;
        //here come getters and setters

DAO - поэтому он будет возвращен контроллеру, который отправит его в JSP:

public Weather getWeatherById(Integer id) {
    return (Weather) sessionFactory.getCurrentSession().get(Weather.class, id);
}

Контроллер:

model.addAttribute("weather", weatherService.getWeatherById(id));

Вопрос в том, как я могу получить доступ к cities.name из JSP? Или это невозможно без специального запроса?

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

Эти два объекта должны иметь двунаправленное отношение один к одному.

public class City{

@One-To-One
private Weather weather;

}

и второй класс:

public class Weather {

@One-to-One
private City city;

}

тогда вы можете выбрать город и узнать его погоду, используя getWeather (), или вы можете выбрать погоду и получить его город.

В качестве альтернативы вы можете использовать оператор соединения HQL для получения города:

from City c join c.weather wheather where wheather.id = :id .
0 голосов
/ 26 сентября 2011

На самом деле, это не похоже на отношения один-к-одному для меня, а скорее на отношение многих к одному.Попробуйте использовать следующее для детей:

public class Weather {

@Many-to-One
private City city;

}

и для родителя:

public class City{

@One-To-Many
private Weather weather;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...