Вот моя сущность:
@Entity
@Table(name = "platforms")
@Data
@NoArgsConstructor
public class Platform implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Length(max = 50)
@Column(nullable = false)
private String name;
}
Объект команды:
@Data
@NoArgsConstructor
public class AdvancedSearch {
private String phrase;
@PositiveOrZero
private Double minPrice;
@PositiveOrZero
private Double maxPrice;
private Set<Integer> pegi;
private Set<Genre> genres;
private Set<Platform> platforms = new HashSet<>();
}
Шаблон в ThymeLeaf:
<div class="form-row">
<div class="col">
Platformy:
<div class="checkbox">
<label class="mr-2 checkbox-inline text-dark"
th:each="p : ${ allPlatforms }">
<input type="checkbox" th:field="*{platforms}"
th:id="${p}" th:value="${p.id}"> [[${p.name}]]
</label>
</div>
</div>
</div>
Я хочу привязать Set к флажкам, но с Integer id у меня есть
TypeMismatchException: предоставляется идентификатор неправильного типа,
Ожидаемый: класс java.lang.Integer, получил класс java.lang.Long.
Когда я изменяю идентификатор на Long в сущности и базе данных, это работает.
Другая похожая сущность работает с Integer. Кто-нибудь знает почему?