【发布时间】:2020-01-23 19:46:35
【问题描述】:
我有玩家和游戏桌,我试图获取他们在特定时间范围内玩过的玩家,所以我尝试将查询写入游戏桌,因为它的玩家名称是来自玩家实体的 fk但这不起作用,错误是状态字段路径“g.userName”无法解析为有效类型。
String q1 =
" select g.userName from Game g "
+ "where g.gameStart between '2019-11-10 00:00:00' and '2019-11-11 00:00:00'";
@Entity
@Table()
public class Game {
@Column() public Timestamp timestamp;
@Column() public Timestamp gameStart;
@Column() public Timestamp gameEnd;
@ElementCollection
@CollectionTable(joinColumns = @JoinColumn())
@MapKeyJoinColumn(name = "QID")
@Column()
public Map<Question, Boolean> playerAnswers = new LinkedHashMap<>();
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int gameID;
@ManyToMany private List<Category> choosenCategories = new ArrayList<>();
@ManyToMany private List<Question> questions = new ArrayList<>();
@Column() private int maxNumberOfQuestions;
@ManyToOne() private Player player;
}
//player
@Entity
@Table()
public class Player {
@Id private String userName;
@OneToMany(mappedBy = "player")
private List<Game> games = new ArrayList<>();
public Player() {}
}
【问题讨论】: