我在使用EJB和JPA更新数据库记录时遇到了问题。持久性提供商:org.eclipse.persistence.jpa.PersistenceProvider
EJB 3编辑数据库记录
当我创造的纪录,我用这个方法:
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和新的operationStatus
。对于更新我使用这种方法:
public void edit(T entity) {
getEntityManager().merge(entity);
}
问题是,当我更新状态正确更新记录,但所有其他列的值设置为null
以前一样不剩。我只想更新operationStatus
并保留其他值不变。这可能使用EJB来做到这一点吗?为了做到这一点,我应该改变什么?
如何didn'nt想起来我自己..一定是我的头编程不工作了一整天:/。谢谢,完美:) –