Skip to content

Map keys of @MappedCollection not converted back to Enum #1656

Closed
@Tsyklop

Description

@Tsyklop

I have two entities:


@Data
@Table(name = "analyze_session")
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AnalyzeSessionEntity extends BaseEntity {

    private Instant endAt;

    private Instant startAt;

    private boolean ended;

    @ToString.Exclude
    @MappedCollection(idColumn = "analyze_session_id", keyColumn = "sport")
    private Map<SportType, AnalyzeSessionSportDataEntity> sportDataBySport;

    public boolean isAllSportsDataDone() {
        return this.sportDataBySport.entrySet().stream().allMatch(entry -> entry.getValue().isDone());
    }

}


@Data
@Table(name = "analyze_session_sport_data")
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AnalyzeSessionSportDataEntity extends BaseEntity {

    private boolean done;

    private SportType sport;

    private int analyzedCount;

    private Integer lastDonePage;

    private LocalDate lastDoneDate;

    private long analyzeSessionId;

}

And when Spring data jdbc load sportDataBySport Map and use String as key of Map, but need use my own enum SportType.

here screenshoots from debugger:

image
image

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions