您好 stackoverflow 社区。p>
我想知道,OpenJPA 是否有可能在插入之前首先检查对象是否已存在于数据库中。
我有两个类(class):
imports...
@Entity(name="Player")
public class Player {
private long id;
private String nickName;
private Team team; /* A Player is on a Team */
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name = "team_id")
public Team getTeam() {
return team;
}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public long getId() {
return id;
}
/* more getters / setters ...*/
}
@Entity(name="Team")
public class Team {
private long id;
private String name;
private List<Player> players; /* A Team Has Players */
@OneToMany(mappedBy = "team", targetEntity = Player.class,
fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
public List<Player> getPlayers() {
return players;
}
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public long getId() {
return id;
}
如果我想添加一个新的玩家或团队,JPA 应首先检查该玩家或团队是否已在数据库中。 如果是,则应使用现有单元的主/外键。
这可能吗?还是我需要编写自己的方法?
致以诚挚的问候 投票
最佳答案
您可能想检查此开关: http://openjpa.apache.org/builds/2.2.0/apache-openjpa/docs/jpa_2.2.html#jpa_2.2_cascadePersist
我猜您正在使用 OpenJPA 2.2.0。
关于java - Apache OpenJPA - 仅当数据库中不存在时插入元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464567/