У меня есть игроки и игровые столы, и я пытаюсь получить игроков, в которых они играли, в определенный c период времени, поэтому я попытался записать запрос в игровой стол, так как он имеет имя игрока в виде 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() {}
}