gpt4 book ai didi

java - 如何使用复合键从 Hibernate 中删除

转载 作者:太空宇宙 更新时间:2023-11-04 06:28:14 25 4
gpt4 key购买 nike

我真的希望能够从具有复合主键的单个表中删除记录。这是我的复合键代码(省略 getters/setters):

@Embeddable
public class MISExceptionStoreUploadControlPK implements Serializable {
/**
* Serializable class - generated UID
*/
private static final long serialVersionUID = -2589068978210044521L;

@Column(name="STORE_NO", nullable=false)
private String storeNo;

@Column(name="EXTRACT_TIME", nullable=false)
private String extractTime;

这是我的实体代码(省略 getters/setters):

@Entity
@Table(name="SDSUSER_OWNER.MIS_EXCEPTION_STORE_UPLD_CNTRL")
public class MISExceptionStoreUploadControl implements Serializable {
/**
* Serializable class - generated UID
*/
private static final long serialVersionUID = 545018012527944915L;

//@Id
@EmbeddedId
private MISExceptionStoreUploadControlPK misExceptionStoreUploadControlPK;

@Column(name="UNDER_EXTRACT_DAYS", nullable=true)
private Integer underExtractDays;

@Column(name="UNDER_WEIGHT_RESERVE", nullable=false)
private Integer underWeightReserve;

以下是尝试删除记录的代码:

// Retrieve session from Hibernate
Session session = sessionFactory.getCurrentSession();

MISExceptionStoreUploadControlPK recordToBeDeleted = (MISExceptionStoreUploadControlPK) session.load(MISExceptionStoreUploadControlPK.class, misExceptionStoreUploadControl.getMisExceptionStoreUploadControlPK());
session.delete(recordToBeDeleted);

这是我得到的错误:嵌套异常是 org.hibernate.MappingException:未知实体:com.classifieds.beans.volumetrics.MISExceptionStoreUploadControlPK

编辑“删除”代码以使用 MISExceptionStoreUploadControl 对象也不起作用。我收到一个错误,指出需要 MISExceptionStoreUploadControlPK 对象。

如果有帮助 - 我可以确认从表中简单检索所有记录正在工作。

如果您能就此提供一些建议,我将不胜感激...谢谢!

最佳答案

我不会直接为您的答案提供解决方案,而是会告诉您如何删除。

首先,当您执行 session.delete(object); 时,会触发一个查询(select)来获取对象的持久性状态,然后触发删除查询来删除记录。

您可以通过以下方式删除记录。

  1. session.delete(对象); - 这将删除记录,但您需要构造对象
  2. 使用查询 - 这是我的选择,因为我可以使用“and”获得尽可能多的条件

    Query query = session.createQuery("delete from TABLE where COL1 = :value");
    query.setParameter("value", 10);

关于java - 如何使用复合键从 Hibernate 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26484810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com