Das kann ich nicht nachvollziehen, sicher ist auf jeden Fall: Wenn der Datensatz nicht gespeichert ist, hat die Zeile
newSpieler.setScoutingId(boscouting.getId());
nicht den gewünschten Effekt, denn boscouting.getId() liefert erst nach dem Speichern einen Wert != null.
Das führt natürlich nur dann auch zu einem Fehler, wenn ScoutingId im Spieler ein Pflichtfeld ist…