I have entity classes from database one of them is join table which has
@JoinColumn(name = "fk_game_id", referencedColumnName = "game_id")
@ManyToOne(optional = false)
private Game fkGameId;
I want to convert Game fkGameId(which is Integer in its own table) to integer so I will be able to make constructor like
public PlayerGame(Integer id, Integer fkGameId, Integer fkPlayerId){ ... }
My question is how to do this? the examples on internet are black magic to me I was looking at this example link here but I couldn't figure out where I have to create this converter? Inside entity class ?? how to actually trigger the converter where to do conversion, where to insert the code can anyone answer this question ??
UPDATE:
I think I need somehow do the conversion to resolve this problem, I did change public Game fkgameid to public Integer fkgameid but I was getting validation error saying that i want to send non entity as a entity value
In session facade i have this with error caused by playerGame.getFKGameID :
private List<PlayerGameDetails> copyPlayerGamesToDetails(List<PlayerGame> playerGames) {
List<PlayerGameDetails> list = new ArrayList<PlayerGameDetails>();
Iterator i = playerGames.iterator();
while (i.hasNext()) {
PlayerGame playerGame = (PlayerGame) i.next();
Integer fkgameid = (Integer) playerGame.getFkGameId();
PlayerGameDetails details = new PlayerGameDetails(playerGame.getPlayerGameId(),
playerGame.getPlayerGameScore(), playerGame.getFkGameId(), playerGame.getFkPlayerId());
list.add(details);
}
return list;
}
with error game cannot be converted to integer on g and p and also this:
@Override
public void createPlayerGame(PlayerGameDetails details) {
try {
Integer g = (Integer) details.getFkGameId();
Integer p = (Integer) details.getFkPlayerId();
PlayerGame playerGame = new PlayerGame(details.getPlayerGameId(), details.getPlayerGameScore(), g, p);
em.persist(playerGame);
} catch (Exception ex) {
throw new EJBException(ex);
}
}
with error saying Integer cannot be converted to Game