Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多次调用jpa repository.save()会引发异常_Java_Spring_Hibernate_Jpa_Orm - Fatal编程技术网

Java 多次调用jpa repository.save()会引发异常

Java 多次调用jpa repository.save()会引发异常,java,spring,hibernate,jpa,orm,Java,Spring,Hibernate,Jpa,Orm,我想多次调用jpa repository.save 但当我第二次尝试保存对象时,它抛出PersistentObjectException,并说分离的实体已传递给Persiste 代码和异常如下所示。我错过了什么 public void createGame(GameTeamRequest gameTeamRequest) { for(Entry<String, Integer> hm : gameTeamRequest.getTeamsInnigsPostionMap

我想多次调用jpa repository.save

但当我第二次尝试保存对象时,它抛出PersistentObjectException,并说分离的实体已传递给Persiste

代码和异常如下所示。我错过了什么

public void createGame(GameTeamRequest gameTeamRequest) {
        for(Entry<String, Integer> hm : gameTeamRequest.getTeamsInnigsPostionMap().entrySet()) {
            GameTeam gameTeam = new GameTeam();
            Team team = new Team();
            team.setTeamName(hm.getKey());
            gameTeam.setTeam(team);
            gameTeam.setGame(gameTeamRequest.getGame());
            gameTeam.setInningsPosition(hm.getValue());
            gameTeamRepository.save(gameTeam);
        }
    }
游戏类别:

  @Entity
@Table(name = "GAME")

public class Game extends Model {

@Column(name = "TOURNAMENT_ID")
private String tournamentId;

@OneToMany(mappedBy = "game")
private Set<GameTeam> gameTeam;          
}

例外情况是指游戏对象,因此看起来您正在将分离的游戏设置为第二个GameTeam。 您可以通过添加(至少)来解决此问题


到您的映射。

可能是您忽略了一些JPA规则,您的示例没有所有信息,我邀请您查看此网站并阅读其他内容,了解我应该将其添加到哪个类和字段?添加到GameTeam中游戏属性的映射-可能将您的实体代码添加到您的问题中以获得更详细的答案。然后添加您的实体
  @Entity
@Table(name = "GAME")

public class Game extends Model {

@Column(name = "TOURNAMENT_ID")
private String tournamentId;

@OneToMany(mappedBy = "game")
private Set<GameTeam> gameTeam;          
}
    @Entity
@Table(name = "TEAM")

    public class Team extends Model {

    @Column(name = "TEAM_NAME")
    private String teamName;

    @OneToMany(mappedBy = "game")
    private Set<GameTeam> gameTeam;

}
    @Entity
@Table(name = "GAME_TEAM")

    public class GameTeam extends Model {

    @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
    @JoinColumn(name = "GAME_ID")
    private Game game;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "TEAM_ID")
    private Team team;

    @Column(name = "INNINGS_POSITION")
    private int inningsPosition;

}
 cascade = { CascadeType.PERSIST, CascadeType.MERGE }