java - 实体管理器将更改保存在数据库中
问题描述
我有一个问题,如何保存或更新 Java 中的更改最终将其导入 SQL。我的代码看起来像这样,但它们不仅仅在 Catch 中保存在 DB 中:
private EntityManager em;
.
.
.
public boolean reduzieren (int id, int weniger){
Produkt produkt = em.find(Produkt.class,id);
int reduziert = produkt.getPreis - weniger;
produkt.setPreis(reduziert);
return true;
我应该写 em.merge(produkt); 将其保存在数据库中。我不知道。
解决方案
当事务结束时,Hibernate 将实体保存到数据库。所以你应该将你的代码包装在事务块中,它应该开始工作。
尝试这个。
EntityTransaction transaction = em.getTransaction();
transaction.begin();
Produkt produkt = em.find(Produkt.class,id);
int reduziert = produkt.getPreis - weniger;
produkt.setPreis(reduziert);
transaction.commit();
推荐阅读
- javascript - 在外部播放器中打开媒体文件
- bixby - 如何更改“搜索某事”文本?
- php - 如何使用数据表中选定项目的 id 作为按钮?
- c# - Unity:计算着色器以计算到每个顶点的最近点
- javascript - 单击处理程序未在图像滑块中触发
- cvxpy - 定义变量可以采用的一组可能值
- javascript - 我可以在 html 中使用 *ngFor 两次吗?
- azure-application-insights - BadRequest 调用 New-AzScheduledQueryRule - Action.aznsAction.actionGroup 从 Cmdlet 格式错误
- solr - 无法在 solr 7.5 中使用 Edge NGram
- sql - 仅从 WRDS 下载运输公司