我在使用 EJB 和 JPA 更新数据库记录时遇到问题。持久性提供者:org.eclipse.persistence.jpa.PersistenceProvider
当我创建记录时,我使用这种方法:
public void create(T entity) {
getEntityManager().persist(entity);
}
一切正常。现在我想编辑同一条记录。例如,我有一个实体:
@Entity
@Table(name = "OPERATION")
public class Operation implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private Long id;
@Column(name = "OPERATION_AUTHOR")
private String operationAuthor;
@Column(name = "OPERATION_TYPE")
private String operationType;
@Column(name = "OPERATION_STATUS")
private String operationStatus;
@Column(name = "CREATED")
@Temporal(value = TemporalType.DATE)
private Date created;
@Column(name = "COMPLETED")
@Temporal(value = TemporalType.DATE)
private Date completed;
//Getters and setters
}
例如,我只想更新operationStatus
。我正在创建一个实体,为其设置相同的记录 id 和 new operationStatus
。为了更新我使用这种方法:
public void edit(T entity) {
getEntityManager().merge(entity);
}
问题是当我更新记录时,状态会正确更新,但所有其他列的值都设置为null
不像以前那样保留。我只想更新operationStatus
,而其他值保持不变。使用 EJB 可以做到这一点吗?我应该改变什么来实现这一点?