课堂游戏:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "game")
public class Game {
@id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_game", nullable = false)
private Long id;
@Column(nullable = false)
private String description;
@Column(name = "ad_enable", nullable = false)
private boolean enable;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "file_id", nullable = false)
private File file;
@ManyToOne
@JoinColumn(name = "section_id", nullable = false)
private Section section;
@Transient
@JsonSerialize
private Long rating;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "game",
cascade = CascadeType.ALL, orphanRemoval = true)
private Set<Rating> ratings;
}
班级评价:
@Data
@Entity
@ToString(exclude = { "user" })
@EqualsAndHashCode(exclude = { "user" })
@Table(name = "rating")
public class Rating {
@id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id_rating", nullable = false)
private Long id;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
@BASIC
@Column(name = "create_date")
private Date createRating;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "user_id", nullable = false)
private UserBasic user;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "game_id")
private Game game;
@BASIC
private Long value;
}
类 GameRestImpl:
protected List preprocess(Main main, Iterable list) { List items = new ArrayList (); 整数测试;尝试 { for (Game item: list) { item.setRating(item.getRatings().stream().reduce((acc, r) - > acc + r.getValue())); 项目。添加(项目);} } catch (SvcException e) { log.error(e); } 退换货品; } protected Object preprocess(Main principal, Game item) { try { item.setRating(item.getRatings()) .stream() .filter() .reduce((acc, r) - > acc + r.getValue()) ); } catch (SvcException e) { log.error(e); } 归还物品; }
我不知道如何将流中收集的值传递给动态属性,因为我得到了错误:
运算符 + 未定义参数类型 Rating, Long