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()