Задать вопрос
DennisKingsman
@DennisKingsman
Студент

Почему Hibernate дублирует поля в сгенерированном запросе?

есть класс сущность
@Getter
@Setter
@EqualsAndHashCode
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "NF_SEND_LIST_SSKV")
public class SendListSskv implements Serializable {

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

    @Column(name = "E_MAIL")
    private String email;

    @Column(name = "SEND_STATUS")
    private Boolean status;

    @Column(name = "MESSAGE")
    @Lob
    private String message;

    @Temporal(TemporalType.DATE)
    @Column(name = "CREATE_DATE")
    private Date createDate;

    @Column(name = "SUBJECT")
    private String subject;

    @JsonIgnore
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "E_MAIL", insertable = false, updatable=false)
    private NotifyUser users;
}


и репо для него
public interface SendListSskvRepository extends PagingAndSortingRepository<SendListSskv, Long>, JpaSpecificationExecutor<SendListSskv> {

    List<SendListSskv> findAllByStatus(Boolean bool);

    void deleteAllByEmail(String email);

    List<SendListSskv> findAllByEmail(String email);

}


я пытаюсь вызвать метод deleteAllByEmail(String email), в этом случае hibernate сначала делает select всех этих записей, чтоб потом удалить и генерит следующий запрос
select sendlistss0_.E_MAIL as E_MAIL3_16_0_,
sendlistss0_.id as id1_13_0_, 
sendlistss0_.id as id1_13_1_, 
sendlistss0_.CREATE_DATE as CREATE_DATE2_13_1_,
sendlistss0_.E_MAIL as E_MAIL3_13_1_, 
sendlistss0_.MESSAGE as MESSAGE4_13_1_, 
sendlistss0_.SEND_STATUS as SEND_STATUS5_13_1_,
sendlistss0_.SUBJECT as SUBJECT6_13_1_ from NF_SEND_LIST_SSKV sendlistss0_ 
where sendlistss0_.E_MAIL=?;

после чего падает с ошибкой Fail to convert to internal representation
ошибка эта связана с тем, что он не может замапить полученные поля на сущности, а не может он этого сделать потому что по неведомой причине дважды выбрал sendlistss0_.id и sendlistss0_.E_MAIL
помогите пожалуйста понять почему и как это исправить?
  • Вопрос задан
  • 66 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы