Thymeleaf多个复选框适用于Long ID,但不适用于Integer

时间:2019-01-12 23:00:51

标签: java spring thymeleaf

这是我的实体:

@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合作。有人知道为什么吗?

0 个答案:

没有答案