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

Spring Jpa save()从子实体中删除列

司马祖鹤
2023-03-14

candref.java

@Getter
@Setter
@AllArgsConstructor
@EqualsAndHashCode
@NoArgsConstructor
@Entity
@IdClass(CandRefKey.class)
@Table(name = "EDJ_CANDD_REF")
public class CandRef implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = -7171464769202238804L;

@Id
@Column(name = "EDJ_CANDD_ID")
private Integer candId;

@Id
@Column(name = "EDJ_CANDD_INST_NO")
private Integer instNo;

@Id
@Column(name = "SEQ_NO")
private Integer seqNo;

@Column(name = "EFF_BEG_DA")
private LocalDate beginDate;

@Column(name = "EFF_END_DA")
private LocalDate endDate;

@Column(name = "EDJ_RQSTN_ID")
private Integer rqstnId;

@Column(name = "RCRT_STAT_CD")
private String statCd;

@Column(name = "RCRT_STAT_DA")
private LocalDate startDate;

@Column(name = "CANDD_ORG_CD")
private String orgCd;

@Column(name = "CANDD_ORG_TYPE_CD")
private String orgTypeCd;

@Column(name = "ISO_CTRY_CD")
private String ctryCd;

@Column(name = "REF_GRP_ID")
private Integer refGrpId;

@OneToMany
@JoinTable(name = "REF_GRP_MBER", joinColumns = {
    @JoinColumn(name = "REF_GRP_ID", referencedColumnName = "REF_GRP_ID") }, inverseJoinColumns = {
        @JoinColumn(name = "REF_MBER_ID", referencedColumnName = "REF_MBER_ID") })
private Set<Member> members;

@Column(name = "REF_CNT_IND")
private String cntInd;

@Column(name = "REF_CR_IND")
private String creditInd;

@Column(name = "EDJ_CANDD_TY_CD")
private String candTyCd;

@Column(name = "REF_EXC_TY_CD")
private String excTyCd;

@Column(name = "REF_EXC_REVW_STAT_CD")
private String revwStatCd;
}

grpMember.java

@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode
@Entity
@IdClass(GrpMemberKey.class)
@Table(name = "REF_GRP_MBER")
public class GrpMember implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = -6907938568490379028L;

@Id
@Column(name = "REF_GRP_ID")
private String refGrpId;

@Id
@Column(name = "REF_MBER_ID")
private Integer refMemberId;

@Column(name = "REF_CR_QTY")
private Double creditQty;

@CreationTimestamp
@Column(name = "CRE_TS", nullable = false, updatable= false)
private LocalDateTime createTimeStamp;

@Column(name = "CRE_PGM_NA", nullable = false, updatable= false)
private String createPrgmName;

@Column(name = "CRE_UID_CD", nullable = false, updatable= false)
private String createUIDCD;

@UpdateTimestamp
@Column(name = "REVSN_TS", nullable = false, insertable= false)
private LocalDateTime revisonTimeStamp;

@Column(name = "REVSN_PGM_NA", nullable = false, insertable= false)
private String revisonPrgmName ="RC_SVC";

@Column(name = "REVSN_UID_CD", nullable = false, insertable= false)
private String revisonUIDCD ="ATSWEB";
}

member.java

@Getter
@Setter
@NoArgsConstructor
@EqualsAndHashCode
@Entity
@Table(name = "REF_MBER")
public class Member {

@Id
@Column(name = "REF_MBER_ID")
private Integer refMemberId;

@Column(name = "EFF_BEG_DA")
private LocalDate beginDate;

@Column(name = "EFF_END_DA")
private LocalDate endDate;

@Column(name = "REF_EDJ_PRSN_ID")
private String refPrsnId;

@Column(name = "REF_LOC_CD")
private String refLocCd;

@Column(name = "EDJ_PRSN_GROUP_CD")
private String prsnGrpCd;

@Column(name = "REF_ORG_CD")
private String orgCd;

@Column(name = "REF_ORG_TYPE_CD")
private String orgTypeCd;

@Column(name = "ORG_ONLY_REF_IND")
private String orgRefInd;

@Formula("(SELECT g.REF_CR_QTY FROM REF_GRP_MBER g WHERE g.ref_mber_id = REF_MBER_ID)")
private Double creditQty;

@CreationTimestamp
@Column(name = "CRE_TS")
private LocalDateTime createTimeStamp;

@Column(name = "CRE_PGM_NA")
private String createPrgmName;

@Column(name = "CRE_UID_CD")
private String createUIDCD;

@UpdateTimestamp
@Column(name = "REVSN_TS")
private LocalDateTime revisonTimeStamp;

@Column(name = "REVSN_PGM_NA")
private String revisonPrgmName;

@Column(name = "REVSN_UID_CD")
private String revisonUIDCD;
}
public interface CandidateRefRepository extends CrudRepository<CandRef, CandRefKey> {

List<CandRef> findByCandIdOrderByInstNoDesc(Integer candId);

List<CandRef> findAllByCandIdAndStatCd(Integer candId, String statCd);

@Query(value = CandidateRefConstants.CURRENT_INSTANCE_WITH_EXCEPTION)
List<CandRef> fetchCurrentInstance();

@Query(value = CandidateRefConstants.CURRENT_MAX_SEQUENCE_BY_CANDID)
CandRef fetchCurrentMaxSequence(@Param("candId") Integer candId);

@Query(value = CandidateRefConstants.CURRENT_INSTANCE_BY_STATCD)
List<CandRef> fetchCurrentInstanceBycandId(@Param("candId") Integer candId);

}

提前道谢。

delete 
from
    ref_grp_mber 
where
    ref_grp_id=?

共有1个答案

时浩波
2023-03-14

当这种情况发生时,你会改变什么?如果成员发生变化,则这是一种逻辑行为,因为表REF_GRP_MBER存储与成员的关系,如果它们发生变化,则会根据变化删除旧记录并添加新记录

 类似资料:
  • 删除父实体时,我还想删除关联的子实体(从数据库中)。我试图在删除时使用级联,如下所示,但我一定做错了什么。 当对父实体对象调用删除时,我收到错误消息:“该实体仍在数据库的其他地方引用”。我可以确认该实体在数据库的其他地方引用的唯一地方是在下面的两个表中(如果我手动从数据库中删除子行,对父实体对象的删除调用工作正常)。在过去的9个小时里,我一直在阅读实体对象并尝试不同的东西。我做错了什么? 这是我的

  • 问题内容: 我有两个分别以双向一对多关系存在的实体类 A 和 B。 A.java: B.java 在一个简单的控制台应用程序中,我从数据库中获取了特定的 A 行,并尝试删除其详细信息 B 行(随机),但是 JPA / Hibernate* 不仅删除了该行-甚至没有向该行发出任何 DELETE 语句。数据库。删除 B 行的唯一方法是从 A.java 的集合( LinkedHashSet )中删除相应

  • 我的实体。ValidationStep与documentDetail有一对一的关系,documentDetail与documentValidations有一个完全的关系 我的删除查询 父ValidationStep被删除,但是docDetail和documentValidations仍然在数据库中。

  • 在我的项目中,我有两个实体与@OneTomany和@ManyToOne相关。看看这些照片- 我的问题-当我从供应品中删除记录时,也会从产品中删除记录,但我不会这样做。如果我删除CascadeType.All,然后重试此操作,将出现错误 com.mysql.jdbc.exceptions.jdbc4.mysqlintegrityConstraintViolationException:无法删除或更新

  • 主要内容:JPA实体删除示例要从数据库中删除记录,可以使用接口提供方法。方法使用主键来删除特定的记录。 JPA实体删除示例 在这里,我们将演示如何根据主键删除指定学生的信息。 完整的项目代码如下所示 - 这个例子包含以下步骤 - 第1步: 在包下创建一个名为的实体类,它包含属性:,和。 文件:StudentEntity.java 的代码如下 - 第2步: 将实体类和其他数据库配置映射到文件中。 文件:persistence.

  • 我有一个用户 - 一个通道关系(频道有一个头像,它存储在本地驱动器上,数据库存储照片的路径。删除通道时,从本地驱动器中删除文件的最佳位置和方式在哪里?在外观、服务或每天检查一次数据库是否包含实体并且文件夹与之对应,如果文件夹存在但实体不存在,则删除它? 目前我只是使用实体管理器删除,但它不会从本地驱动器中删除照片