powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как мапировать javafx-коллекции hibernate-том???
2 сообщений из 2, страница 1 из 1
Как мапировать javafx-коллекции hibernate-том???
    #39031288
NDAleksey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени товарищи.
Подскажите, а то пока ума не приложу, как победить IllegalArgumentException, которая основательно возникает при мапировании SetProperty.
Ситуация простейшая. Есть класс модели:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
public class Person implements Serializable {
    private IntegerProperty id;
    private StringProperty name;
    private SetProperty<Certificate> certificates;
    public Person() {
        id = new SimpleIntegerProperty();
    }

    public Person(String name, SetProperty<Certificate> certificates) {
        this();
        this.name = new SimpleStringProperty(name);
        this.certificates = new SimpleSetProperty<>(certificates);
    }

    public int getId() {
        return id.get();
    }

    public IntegerProperty idProperty() {
        return id;
    }

    public void setId(int id) {
        this.id.set(id);
    }

    public String getName() {
        return name.get();
    }

    public StringProperty nameProperty() {
        return name;
    }

    public void setName(String name) {
        this.name.set(name);
    }

    public ObservableSet<Certificate> getCertificates() {
        return certificates.get();
    }

    public SetProperty<Certificate> certificatesProperty() {
        return certificates;
    }

    public void setCertificates(ObservableSet<Certificate> certificates) {
        this.certificates.set(certificates);
    }
}


Класс Certificate не описываю, т.к. он прост до бесконечности (поля: name и receptionDate)

Person.hbm.xml вяглядит следующим образом:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<class name="Person" table="PERSON">
        <id name="id" column="ID">
            <generator class="native"/>
        </id>
        <property name="name" column="NAME" type="string"/>
        <set name="certificates">
            <key column="PERSON_ID"></key>
            <one-to-many class="Certificate"/>
        </set>
    </class>



В контроллере по нажатию кнопки пытаюсь добавить человека:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
private void addPersonBtnRegisterEvents() {
        addPersonBtn.setOnAction(event -> {
            Set<Certificate> certificates = new HashSet<Certificate>();
            certificates.add(new Certificate("Senior Java Developer", new Date()));
            certificates.add(new Certificate("Junior C# Developer", new Date()));

            SetProperty<Certificate> certificateSetProperty = new SimpleSetProperty<Certificate>(FXCollections.observableSet(certificates));

            Person person = new Person(nameTextField.getText(), certificateSetProperty);


            persons.add(person);

            Session session = factory.openSession();
            Transaction transaction = session.beginTransaction();
            session.save(person);  // тут возникает IllegalArgumentException
            transaction.commit();
            session.close();
        });
    }



Из лона ошибки я понимаю, что жибернейту ничего не известно о коллекции SetProperty. Так вот как мапировать подобные типы?
...
Рейтинг: 0 / 0
Как мапировать javafx-коллекции hibernate-том???
    #39031344
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делать DTO и потом писать конвертеры одного в другое
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как мапировать javafx-коллекции hibernate-том???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]