我在使用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想起來我自己..一定是我的頭編程不工作了一整天:/。謝謝,完美:) –