EntityManager.persist() 函数正在尝试更新现有记录,但我总是需要插入新记录。如何做到这一点?
实体 bean 的一部分:
@Entity
@Table(name="SYNC_TRIGGER", schema="ETL")
public class SyncTrigger implements Serializable {
@Id
@Column(name="ID")
@SequenceGenerator(name = "TRIGGER_SEQ", sequenceName = "ETL.TRIGGER_SEQ")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TRIGGER_SEQ")
private Long triggerId;
......
Stateless bean 的一部分,它保留了记录:
@Stateless
public class TriggerPersister {
@PersistenceContext(unitName="syncTriggerDS")
protected EntityManager entityManager;
public <T extends GenericTrigger> void persistTrigger(SyncTrigger
st, T concreteTrigger){
entityManager.persist(st);
.........
UPD:在 entityManager.persist(st) 执行之前,st.triggerId 值为 null,但在之前添加的记录的 -id 之后分配给该字段。