Здравствуйте, BeerKiller, Вы писали:
BK>Здравствуйте, deepsky, Вы писали:
BK>но возник другой вопрос (
BK>при таком мапинге говорится что не найдены геттеры и сеттеры (для ID) для
BK>полей person и car в классе TakenCar. предположим это можно изобразить
BK>вот так:
BK>BK>public long getPersonId(){
BK> return person.getId();
BK>}
BK>public void setPersonId(long id){
BK> person.setId(id)
BK>}
BK>public long getCarId(){
BK> return car.getId();
BK>}
BK>public void setCarId(long id){
BK> car.setId(id)
BK>}
BK>
Для всех филдов в классе, для которых есть мапинг, должны быть сеттеры/геттеры, иначе хибернейт не сможет им присвоить значения.
Что касается TakenCar — если у вас такой же маппинг как в первом варианте, тогда нужно в
класс TakenCar добавить два поля — person и car, соответствующих классов и с соответствующими геттерами/сетеррами.
Этого должно хватить.
Или приведите свой мапинг/определения классов.
BK>пытаюсь сохранить объект TakenCar:
BK>public static void main(String[] args){
BK> Session session = HibernateUtil.currentSession();
BK> Transaction tx = session.beginTransaction();
BK> Person person = new Person();
BK> person.setName("Some_name");
BK> person.setAge(35);
BK> Car car = new Car();
BK> car.setModel("Some_model");
BK> car.setColor("green");
BK> session.save(person);
BK> session.save(car);
BK> TakenCar takencar = new TakenCar();
BK> takencar.setPerson(person);
BK> takencar.setCar(car);
BK> session.save(takencar);
BK> tx.commit();
BK> HibernateUtil.closeSession();
BK>}
BK>объекты car и person сохраняются, а в месте session.save(takencar);
возникает ексепшн.
BK>вот строки из аутпута:
Вроде бы всё правильно, проблема скорее всего в мапинге TakenCar.
BK>как это чинить? или где об этом почитать?
Почитать — на хибернейт.орг, тут без вариантов.
BK>заранее большое спасибо!