在我的项目中,我使用Spring数据jpa。我有多对多关系的表格。我的实体:
@Entity
@Table(name = "SPEC")
public class SpecJpa {
@Id
private int id;
@Column(name = "NAME")
private String name;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "Creator_ID", unique = false, nullable = false, updatable = true)
private UsersJpa usersJpa;
@Column(name = "DESCRIPTION")
private String description;
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name="SPEC_PARTS",
joinColumns = @JoinColumn(name="ID_PARTS", referencedColumnName="id"),
inverseJoinColumns = @JoinColumn(name="ID_SPEC", referencedColumnName="id")
)
private Set<PartsJpa> partsJpa;
//---------------
和零件:
@Entity
@Table(name = "PARTS")
public class PartsJpa {
@Id
private int id;
@Column(name = "NAME")
private String name;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "ID_EXPORT", unique = false, nullable = false, updatable = true)
private ExportJpa exportJpa;
@OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "ID_TYPE", unique = false, nullable = false, updatable = true)
private TypesJpa typesJpa;
@Column(name = "DESCRIPTION")
private String description;
@ManyToMany(fetch = FetchType.EAGER)
private Set<SpecJpa> specJpa;
现在在Controller中,我尝试从表部分中删除一行:
@PostMapping("deletePart")
public String deletePart(@RequestParam String id, Model model) {
partsService.deleteById(Integer.parseInt(id));
return "redirect:/parts";
}
但我有例外:
区分完整性约束冲突:“FK9Y4MKICYBLJWPENACP4298I49:PUBLIC.PARTS外键(ID\u导出)引用PUBLIC.EXPORT(ID)(1)”;SQL语句:/*删除com.aleksandr0412.demo.entitiesjpa。ExportJpa/delete from EXPORT where id=?[23503-200]],SQL:/删除com.aleksandr0412.demo.entitiesjpa。ExportJpa*/delete from EXPORT where id=?2020-05-25 19:16:31.630警告13387---[nio-8080-exec-4]o.h.engine.jdbc.spi。SqlExceptionHelper:SQL错误:23503,SQLState:23503
在这个实体的数据库中,我有3个表:Parts、Spec和Spec\u Parts。据我所知,要解决这个问题,首先应该删除表spec_部分中的行,然后可以从表部分中删除行。我该怎么做?
在您的partsService实现中,我建议您首先使用给定的id从控制器获取要删除的资源(即PartsJpa)。接下来将其specJpa设置为null或emptySet,然后调用delete方法。
为此,请确保正确实现了方法setSpecJpa(SpecJpa SpecJpa)和setPartJpa(PartJpa PartJpa)。
我希望你觉得这有帮助。
我希望在消费者和政策这两个实体之间建立一对多关系。一个消费者应该有几个政策。 这是我想要的一个消费JSON对象的例子: 这就是我到目前为止所做的: 政策实体 消费者实体 我想没那么难,但我已经试了几个小时了,还是做不到。我刚到Spring,所以如果有人能帮助我,我会非常感激!
我在Spring Data JPA中有两个实体: 目标是获取与user\u id相关的所有税款: User.java 税务ayment.jva 我不想要一个太多的注释从User.java和列映射在纳税user_id。 规格等级如下: 根据我获取所有与user\u id相关的税款的目标,规范是正确的还是错误的?
DataUpload实体 DataUpload存储库 为了删除数据上传,我尝试执行存储库的两个查询方法:
复制和粘贴我前面问题的一些介绍部分。 我在Eclipselink2.3.2中使用JPA2.0,在其中,我在产品和它们的颜色之间建立了多对多的关系。一个产品可以有多种颜色,一种颜色可以与多种产品相关联。这种关系在数据库中由三个表表示。 null 实体类。
问题内容: 我要删除具有多对多关系的一个站点上的表中的一行。我还想删除该关系另一侧的所有相关行。 例如,假设我有以下表格,并且想从中删除一行。我也想从中删除所有相关的行,当然,也删除其中不再需要的任何行。 我知道如何在查询中连接以上表格。但是我看不到如何删除整个关系中的数据。 注意:关系的两端都实现级联删除。因此,例如,从中删除行将删除中的任何相关行。但是显然,这不会传播到表中。 问题答案: 我认