这是我的实体:
@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绑定到复选框,但是使用整数ID TypeMismatchException:提供的ID类型错误, 预期:类java.lang.Integer,获得类java.lang.Long。 当我在实体和数据库中将id更改为Long时,它可以工作。 另一个类似的实体与Integer合作。有人知道为什么吗?