Important Notice - Forums is archived
To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.

Vaadin lets you build secure, UX-first PWAs entirely in Java.
Free ebook & tutorial.
Отображение таблиц с отношением один-ко-многим
Добрый день.
Пытаюсь отобразить содержимое 2-х таблиц, свзяанных отношением один-ко-многим. К сожалению, не совем это получается.
Таблицы: pravform и contract.
pravform
@Entity
public class Pravform {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private int pfId;
private String pfName;
@OneToMany(mappedBy = "pravform")
private Set<Contract> contracts;
//getters and setters
contract
@Entity
public class Contract {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private int contId;
@ManyToOne
@JoinColumn(name="pfId")
private Pravform pravform;
private String contOrgName;
private String contCity;
//getters and setters
отображение
private JPAContainer<Contract> contracts = JPAContainerFactory.make(Contract.class, "DogovoraPool");
private Table contTable = new Table(null, contracts);
contTable.setSelectable(true);
contTable.setMultiSelect(true);
contTable.setImmediate(true);
contTable.setMultiSelectMode(MultiSelectMode.DEFAULT);
contTable.setVisibleColumns(new Object[] { "contId", "pravform", "contOrgName", "contCity" });
В таблице contTable в столбце pravform значения видны в виде : com.val.dogovora.entity.Pravform@811136
Подскажите, где я ошибся?
Приветствую!
А что вы хотите видеть? Если название pravform, то переопределите метод toString
Andris Lapinsh: Приветствую!
А что вы хотите видеть? Если название pravform, то переопределите метод toString
Да, спасибо, именно это мне и нужно было. Добавил в Pravform.java
@Override
public String toString() {
return pfName;
}
и все заработало :)
Подскажите еще, откуда вы почерпнули эту информацию? Из какого учебника или самоучителя? Я перерыл все, что нашел об Ваадине, но не нашел, то, что мне нужно.
Я уже и не помню ... То ли в Vaadin book, то ли в форуме от одного из разработчиков :) Ну по сути можно догадаться, что com.val.dogovora.entity.Pravform@811136 есть имя класса, которое мы получаем от метода toString() по умолчанию
Andris Lapinsh: Я уже и не помню ... То ли в Vaadin book, то ли в форуме от одного из разработчиков :) Ну по сути можно догадаться, что com.val.dogovora.entity.Pravform@811136 есть имя класса, которое мы получаем от метода toString() по умолчанию
Я бы не скоро догадался. Я сейчас на стадии узучения Java :)
Спасибо за помощь!
Походу еще вопрос возник. Колонка с данными, которые тянутся из другой таблицы не сортируется при нажатии на ее заголовок.
Нашел сортировку для JPAContainer, но она не работает.
contracts.sort(new String[] { "pravform.pfName" }, new boolean[] { true });
Выдается ошибка: No such sortable property ID: pravform.pfName
Подскажите еще с этим :)
Конечно нет такого проперти, ведь у вас
{"contId", "pravform", "contOrgName", "contCity" }
надо просто pravform
Andris Lapinsh: Конечно нет такого проперти, ведь у вас
{"contId", "pravform", "contOrgName", "contCity" }
надо просто pravform
Если заменить так:
contracts.sort(new String[] { "pravform" }, new boolean[] { true });
то выдается такая же ошибка: No such sortable property ID: pravform
Может нужно что-то еще в классе pravform, откуда тянется pfName, изменить?
Я предполагаю что ошибка связанна с тем, что ваш класс не реализует интерфейс Comparable. Проще всего надо найти в исходниках Vaadin по какой причине выводится данная ошибка
Andris Lapinsh: Я предполагаю что ошибка связанна с тем, что ваш класс не реализует интерфейс Comparable. Проще всего надо найти в исходниках Vaadin по какой причине выводится данная ошибка
Спасибо за наводку, буду искать.