Spring hibernate saving wrong column?

Viewed 85

When adding new composite primary key in my entity, I am facing an intermixing of the columns that are saved. I tried replacing the Double field with String(to find root cause of error converting nvarchar to float) which is when I found this problem.

Please help as @Column A gets saved to B and B to A?

Base Entity:-

    @Getter
    @Setter
    @SuperBuilder
    @NoArgsConstructor
    @AllArgsConstructor
    @EqualsAndHashCode(callSuper = false)
    @Entity
    @Table(name = "SOMETABLE")
    @IdClass(MyEntity.IdClass.class)
    @EntityListeners(AuditingEntityListener.class)
    @Inheritance(strategy = InheritanceType.SINGLE_TABLE) //ithinkproblm
    @DiscriminatorColumn(name = "Some_Column")
    public class MyEntity extends Xyz {
    
      /** primary key. */
      @Data
      public static class IdClass implements Serializable {
        private String a;
        private String b;
        private Double c;
        private String someColumn;
      }
    
      @Id
      @Column(name = "a")
      private String a;
    
      @Id
      @Column(name = "b")
      private String b;
    
      @Id
      @Column(name = "c")
      private Double c;
    
      @Column(name = "the_value")
      private String thevalue;
    
      @Id
      @Column(name = "Some_Column", insertable = false, updatable = false)
      private String someColumn;

}



public class Xyz {

  @ExcelRow @Transient private int i;

  @JsonIgnore
  @Column(name = "user_created", updatable = false)
  @CreatedBy
  private String userCreated;

  @JsonIgnore
  @Column(name = "user_updated")
  @LastModifiedBy
  private String userUpdated;

  @JsonIgnore
  @Column(name = "created_date", updatable = false)
  @CreatedDate
  @Temporal(TIMESTAMP)
  private Date dateCreated;

  @JsonIgnore
  @Column(name = "updated_date")
  @LastModifiedDate
  @Temporal(TIMESTAMP)
  private Date dateUpdated;

  @Column(name = "characters")
  private String characters;
}

Child Entity:-

@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Entity
@DiscriminatorValue(Constants.EXAMPLE)
public class Child extends MyEntity{

  @Column(name = "text")
  private String text;
}

EDIT: I have done away with the inheritance thing and discriminator column but the error just won't go. My debugger shows the correct values upto saveAll()

0 Answers
Related