Can I use the SQL Object API to map Game to a row in the GAMES DB? Here is my attempt:
Data class:
public class Game {
protected int id;
protected int whoseTurn;
protected int winner;
protected char[][] board;
public Game(int id, int turn, int winner, char[][] board ) {
this.id=id;
this.whoseTurn=turn;
this.winner=winner;
this.board=board;
}
@JsonProperty
public int getId() {
return id;
}
@JsonInclude(Include.NON_NULL)
public int getWhoseTurn() {
return whoseTurn;
}
@JsonInclude(Include.NON_NULL)
public int getWinner() {
return winner;
}
public char[][] getBoard() {
return board;
}
}
DAO:
@RegisterMapper(GameMapper.class)
public interface GameDAO {
@SqlUpdate("create table if not exists GAMES (ID integer, WHOSE_TURN varchar(10), WINNER varchar(10), BOARD char(1)[][])")
void createTableIfNotExists();
@SqlUpdate("insert into GAMES (ID, WHOSE_TURN, WINNER, BOARD) values (:id, :whoseTurn, :winner, :board)")
void insert(@BindBean Game game);
}
When insert is called I get this error:
org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of [[C. Use setObject() with an explicit Types value to specify the type to use.
What is [[C? Can I make this work somehow? If not I'd really appreciate an alternative.