Я пытался добавить данные в свой tableView в моем приложении JavaFX. Я использую Hibernate для выполнения операций над моей базой данных. Я использовал запрос, чтобы получить все заказы и сохранить каждый заказ в объекте и добавил объект в наблюдаемый список tableView. Я создал класс заказов и сопоставил его с моей базой данных. Это класс заказов:
@Entity
@Table(name = "orders")
public class orders implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "order_id")
private int order_id;
@JoinColumn(name = "item_id")
@ManyToOne
@NotNull
private items item_id;
@Column(name = "quantity")
@NotNull
private int quantity;
@Column(name = "price_per_unit")
@NotNull
private double price_per_unit;
@Column(name = "total_price")
@NotNull
private double total_price;
@Column(name = "order_date")
@NotNull
private Date order_date;
@JoinColumn(name = "user_id")
@ManyToOne
@NotNull
private users user_id;
public orders() {
}
public orders(int order_id, items item_id, int quantity, double price_per_unit, double total_price, Date order_date, users user_id) {
this.order_id = order_id;
this.item_id = item_id;
this.quantity = quantity;
this.price_per_unit = price_per_unit;
this.total_price = total_price;
this.order_date = order_date;
this.user_id = user_id;
}
public int getOrder_id() {
return order_id;
}
public void setOrder_id(int order_id) {
this.order_id = order_id;
}
public items getItem_id() {
return item_id;
}
public void setItem_id(items item_id) {
this.item_id = item_id;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public double getPrice_per_unit() {
return price_per_unit;
}
public void setPrice_per_unit(double price_per_unit) {
this.price_per_unit = price_per_unit;
}
public double getTotal_price() {
return total_price;
}
public void setTotal_price(double total_price) {
this.total_price = total_price;
}
public Date getOrder_date() {
return order_date;
}
public void setOrder_date(Date order_date) {
this.order_date = order_date;
}
public users getUser_id() {
return user_id;
}
public void setUser_id(users user_id) {
this.user_id = user_id;
}
}
А приведенный ниже код является кодом представления, в котором у меня есть tableView, который загружает заказы и отображает заказы из базы данных:
public class OrdersPageController implements Initializable {
private Main app;
private Session session;
private Transaction transaction = null;
@FXML
private TableView<orders> table;
public void setApp(Main app) {
this.app = app;
}
/**
* Initializes the controller class.
*/
@Override
public void initialize(URL url, ResourceBundle rb) {
session = HibernateUtil.getSessionFactory().openSession();
transaction = session.beginTransaction();
//Fill the table view
getOrders();
}
public void goBack(ActionEvent event){
session.close();
transaction = null;
app.goToHomePage();
}
public void processLogout(ActionEvent event){
session.close();
transaction = null;
app.userLogout();
}
public void addOrder(ActionEvent event){
session.close();
transaction = null;
app.addOrdersPage();
}
public void deleteOrder(ActionEvent event){
session.close();
transaction = null;
app.closeOrdersPage();
}
public void getOrders(){
try{
String hql = "FROM orders";
Query query = session.createQuery(hql);
List<orders> list = query.getResultList();
for (orders o : list) {
//Create an order object
orders order = new orders();
order.setOrder_id(o.getOrder_id());
order.setItem_id(o.getItem_id());
order.setPrice_per_unit(o.getPrice_per_unit());
order.setQuantity(o.getQuantity());
order.setOrder_date(o.getOrder_date());
order.setTotal_price(o.getTotal_price());
order.setUser_id(o.getUser_id());
//Create an observable list for the table
ObservableList<orders> tableList = table.getItems();
//Add the order object to the list
tableList.add(order);
//Set the created list to the table to show data
table.setItems(tableList);
}
}catch(Exception e){
System.out.println(e.getMessage());
}
finally{
session.close();
}
}
}
Обратите внимание, что метод getOrders - это метод, который получает заказы из базы данных и устанавливает наблюдаемый список tableView.
У меня проблемы с отображением item_id и user_id заказа. Я думаю, что проблема заключается в том, что они оба являются объектами типов элементов и пользователей соответственно, и таблица отображает адрес объектов. Вместо этого я хочу отобразить номера идентификаторов заказанного товара и пользователя, который сделал заказ. Если вы знаете, что я могу сделать, чтобы решить мою проблему, поделитесь со мной.