Есть два класса:
package server.dao.entities;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import javax.persistence.*;
import java.io.Serializable;
import java.sql.Date;
import java.sql.Time;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "orders")
public class OrderEntity implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_order", nullable = false)
private int idOrder;
@Column(name = "date", nullable = true)
private Date date;
@Column(name = "time", nullable = true)
private Time time;
@ManyToOne
@LazyCollection(LazyCollectionOption.FALSE)
@JoinColumn(name = "id_customer", referencedColumnName = "id_customer", nullable = false)
private CustomerEntity customer;
@ManyToMany
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name = "order_item", joinColumns = @JoinColumn(name = "id_order"), inverseJoinColumns = @JoinColumn(name = "id_item"))
private Set<ItemEntity> items = new HashSet<>(0);
public OrderEntity(Date date, Time time, CustomerEntity customer, Set<ItemEntity> items)
{
this.date = date;
this.time = time;
this.customer = customer;
this.items = items;
}
public OrderEntity()
{
}
public Set<ItemEntity> getItems()
{
return items;
}
public void setItems(Set<ItemEntity> items)
{
this.items = items;
}
public int getIdOrder()
{
return idOrder;
}
public void setIdOrder(int idOrder)
{
this.idOrder = idOrder;
}
public Date getDate()
{
return date;
}
public void setDate(Date date)
{
this.date = date;
}
public Time getTime()
{
return time;
}
public void setTime(Time time)
{
this.time = time;
}
public CustomerEntity getCustomer()
{
return customer;
}
public void setCustomer(CustomerEntity customer)
{
this.customer = customer;
}
}
Item:
package server.dao.entities;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import javax.persistence.*;
import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "item")
public class ItemEntity implements Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_item", nullable = false)
private int idItem;
@Column(name = "name", nullable = true, length = 45)
private String name;
@Column(name = "price", nullable = true)
private Float price;
@ManyToMany
@JoinTable(name = "order_item", joinColumns = @JoinColumn(name = "id_item"), inverseJoinColumns = @JoinColumn(name = "id_order"))
@LazyCollection(LazyCollectionOption.FALSE)
private Set<OrderEntity> orders = new HashSet<>(0);
public ItemEntity(String name, Float price)
{
this.name = name;
this.price = price;
}
public ItemEntity()
{
}
public Set<OrderEntity> getOrders()
{
return orders;
}
public void setOrders(Set<OrderEntity> orders)
{
this.orders = orders;
}
public int getIdItem()
{
return idItem;
}
public void setIdItem(int idItem)
{
this.idItem = idItem;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public Float getPrice()
{
return price;
}
public void setPrice(Float price)
{
this.price = price;
}
}
Нужно удалить только связь в ассоциативной сущности , Пытаюсь удалить так :
DAO<OrderEntity> DAO = new DAO<>(OrderEntity.class);
DAO<ItemEntity> itemEntityDAO = new DAO<>(ItemEntity.class);
OrderEntity orderEntity = DAO.readById(idOrder);
ItemEntity itemEntity = itemEntityDAO.readById(idItem);
orderEntity.getItems().remove(itemEntity);
itemEntity.getOrders().remove(orderEntity);
itemEntityDAO.update(itemEntity);
DAO.update(orderEntity);
Но в БД , никаких изменений не происходит
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники