Pau*_*nis 3 java mysql ejb jpa java-ee
我使用EJB和JPA更新数据库记录时遇到问题.持久性提供者:org.eclipse.persistence.jpa.PersistenceProvider
当我创建一个记录时,我正在使用这个方法:
public void create(T entity) {
getEntityManager().persist(entity);
}
Run Code Online (Sandbox Code Playgroud)
一切都好.现在我要编辑同一条记录.例如,我有一个实体:
@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
}
Run Code Online (Sandbox Code Playgroud)
例如,我想只更新operationStatus.我正在创建一个实体,设置相同的记录ID和新的operationStatus.为了更新我使用这种方法:
public void edit(T entity) {
getEntityManager().merge(entity);
}
Run Code Online (Sandbox Code Playgroud)
问题是当我更新记录时状态正确更新但所有其他列的值都设置为null不像以前那样保留.我想只更新operationStatus并保持其他值不变.使用EJB可以做到这一点吗?我应该改变什么来实现这一目标?
小智 5
首先使用Operation op = getEntityManager().find(Operation.class,id)加载实体.然后执行op.setOperationStatus(value).就是这样,它会在会话刷新/关闭时得到更新.
| 归档时间: |
|
| 查看次数: |
3336 次 |
| 最近记录: |