当前位置: 首页 > 知识库问答 >
问题:

删除未完成

郎同化
2023-03-14

我使用spring Boot2、jpa和Hibernate。Db是后置,我尝试删除一个带有子级的对象

@Entity
@IdClass(SamplingsPK.class)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Samplings {

    @Id
    private int year; //only last 2 number 2018 -> 18

    @Id
    @GeneratedValue
    private Integer sequenceId;

    @OneToOne
    private Colors color;

    @OneToMany(mappedBy = "sampling", cascade = CascadeType.ALL, orphanRemoval = true)
    private List<Samples> samples = new ArrayList<>();

    @Embedded
    private TestSamplings testSamplings;

    ...
}

public class SamplingsPK implements Serializable {

    private int year;

    private Integer sequenceId;

    public SamplingsPK(int year, Integer sequenceId) {
        this.sequenceId = sequenceId;
        this.year = year;
    }

    private SamplingsPK() {

    } 
    ...
}

@Entity
@IdClass(SamplesPK.class)
public class Samples{

    @Id
    private String sampleLetter;

    @Id
    @ManyToOne(optional = false)
    @JoinColumns({
        @JoinColumn(name = "sampling_id", referencedColumnName = "sequenceId"),
        @JoinColumn(name = "sampling_year", referencedColumnName = "year")})
    private Samplings sampling;

    @OneToOne(mappedBy = "sample", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
    private TestSamples testSamples;
    ...
}


@Entity
public class TestSamples {

    @Id
    @SequenceGenerator(name = "test_samples_id_seq", sequenceName = "test_samples_id_seq", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "test_samples_id_seq")
    private Integer id;

    @OneToOne(fetch = FetchType.LAZY)
    private Samples sample;

    @OneToOne(mappedBy = "testSample", fetch = FetchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
    private Compressions compressionTest;
    ....
}

@Repository
public interface SamplingsRepository extends JpaRepository<Samplings, SamplingsPK> {
}

如果我删除了Samplings,Samplings、testsamplings和Compressions也应该被删除。

@Transactional
public void deleteSamplings(int year, Integer id) {
    samplingsRepository.deleteById(new SamplingsPK(year, id));

}

从sample_letter=?的示例中删除和sampling_id=?和sampling_year=?

2018-10-03 22:21:05.832错误14511--[nio-8080-exec-9]O.H.I.ExceptionMapperStandardmpl:HHH000346:托管刷新期间出错[批处理更新从更新[0]返回意外行计数;实际行数:0;应为:1]2018-10-03 22:21:05.834信息14511---[nio-8080-exec-9]O.H.E.J.B.Internal.AbstractBatchImpl:HHH000010:批处理释放时仍包含JDBC语句2018-10-03 22:21:05.848错误14511---[nio-8080-exec-9]O.A.C.C.C.[.[/].[dispatcherServlet]:路径为[]的上下文中servlet[dispatcherServlet]的servlet.Service()引发异常[请求处理失败;嵌套异常为

没有sample和其他的查询

只需搜索一种删除所有东西的方法...

共有1个答案

翟永春
2023-03-14

这很可能是因为您正在尝试更新/删除一些没有区别或不再存在的东西。

此外,如果使用任何生成器类,则不应使用setter显式设置ID属性(这似乎不是您的情况)。

如果显式设置Id属性的值,则会导致此错误。在Hibernate映射文件中签入字段generator=“native”或“incremental”,并且在数据库中映射的表不是auto_incremented。

还要尝试更新表以设置auto_increment

 类似资料:
  • 嗨,我正在用spring boot hibernate测试MySQL中的记录删除-插入-删除操作,我注意到一个问题,当插入发生时,记录似乎没有被完全删除。 3在hibernate kickstart上创建初始记录(通过类路径中的data.sql) 操作为 (1)创建的初始记录 (2)删除所有记录 (3)添加新记录 (4)删除所有记录 当执行断言时,发现结果列表中仍然包含最后一条记录,因此断言失败。

  • 我有一项服务,每天在Kubernetes上部署数千个短期工作。我试图让Kubernetes在完成后使用这里描述的功能删除这些作业: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#clean-up-finished-jobs-automatically 作业完成,但在表示的时间限制之

  • 问题内容: 嗨,我正在尝试通过下面的查询删除表中的所有行 我正在表中删除n行。但是表中仍然存在行。我的删除通话有什么问题吗? 问题答案: 您需要先调用以将对数据库所做的所有更改提交给数据库,然后再调用: 来源(Android开发人员参考): 如果任何事务未标记为干净而结束(通过调用setTransactionSuccessful),则更改将回滚。否则,他们将被提交。

  • 如题,如果想用Java处理一段带有html标签的字符串。 要求: ①如果只存在后半部分标签,不存在前半部分标签,就将后半部分标签删除。 ②如果只存在前半部分标签,不存在后半部分标签,就将前半部分标签删除。 例如下面这段: 平明后的</u> 标签被我故意删除了;洛阳前的<u>标签被我故意删除了。 有什么办法可以删除这些不完整的标签,最好还能保留标签内容的? 不是提取标签内容,是将不完整的标签删除。

  • < b >想改进这个问题?更新问题,使其成为关于堆栈溢出的主题。 我正在尝试从我的ubuntu 12.04中完全卸载mysql。但无法。 我尝试了很多命令。但没有任何效果。任何人都可以在这里帮忙! 我不明白该怎么做。我想删除有关MySQL的所有内容。每当我试图定位它时。我明白了。 我希望一切都被删除。mysql服务器、mysql客户端、mysqls库甚至配置。 请帮帮我!!!

  • 问题内容: 我知道这是一个杂乱的实现,但是我基本上有这段代码(我全部写了),使用适当的菜单选项时,我需要能够从列表中删除一名学生或教师。代码中的所有其他内容都起作用,但菜单选项3和4无效。我尝试删除该对象时输入的是完全相同的信息。这是代码。这三个类别都在下面。 驱动类别: 学生班: 讲师课程: 问题答案: 您必须正确覆盖和类的方法。 覆盖等于时,也应覆盖。新学生(姓名,ID,GPA); 例如,如下