Hibernate: данные не извлекаются, когда объект имеет только EmbeddedId - PullRequest
0 голосов
/ 25 июня 2019

У меня есть таблица, в которой первичный ключ является составным ключом всех столбцов (не спрашивайте меня, почему :(. Я создал объект для него, как показано ниже. Когда я пытаюсь извлечь данные с использованием данных Spring JPA, он ничего не возвращает. Но из логов я вижу, что hibernate запустил запрос и тоже получил данные. Пожалуйста, сообщите, что я делаю не так.

@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name = "PORTAL_CSV_HEADERS")
public class PortalCsvHeaders implements Serializable {

  @EmbeddedId
  @AttributeOverrides({
    @AttributeOverride(
        name = "orderId",
        column = @Column(name = "ORDER_ID", nullable = false, precision = 9, scale = 0)),
    @AttributeOverride(
        name = "csvHeaderName",
        column = @Column(name = "CSV_HEADER_NAME", length = 100)),
    @AttributeOverride(
        name = "recipientMapId",
        column = @Column(name = "RECIPIENT_MAP_ID", precision = 22, scale = 0)),
    @AttributeOverride(
        name = "recipientDlfVal",
        column = @Column(name = "RECIPIENT_DLF_VAL", length = 100)),
    @AttributeOverride(
        name = "recipientDlfName",
        column = @Column(name = "RECIPIENT_DLF_NAME", length = 200))
  })
  private PortalCsvHeadersId id;

  @JsonIgnore
  @ManyToOne
  @JoinColumn(name = "ORDER_ID", insertable = false, updatable = false)
  private PortalOrder order;

Вот PortalCsvHeadersId

@Data
@Embeddable
@NoArgsConstructor
public class PortalCsvHeadersId implements Serializable {

  @Column(name = "ORDER_ID", nullable = false, precision = 9, scale = 0)
  private Long orderId;

  @Column(name = "CSV_HEADER_NAME", length = 100)
  private String csvHeaderName;

  @Column(name = "RECIPIENT_MAP_ID", precision = 22, scale = 0)
  private Long recipientMapId;

  @Column(name = "RECIPIENT_DLF_VAL", length = 100)
  private String recipientDlfVal;

  @Column(name = "RECIPIENT_DLF_NAME", length = 200)
  private String recipientDlfName;
}

Вот ассоциация в PortalOrder

 @OneToMany(cascade = CascadeType.ALL, mappedBy = "order", orphanRemoval = true)
  private Set<PortalCsvHeaders> portalCsvHeaders = new HashSet<PortalCsvHeaders>(0);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...