java - 如何在不提交整个事务的情况下根据持久化实体管理器维护插入和删除
问题描述
如何维护 jpa 中的删除和插入以及如何在 jta 和 jpa 中将重复数据保留在同一个 entitymanager 中
查询的执行是这样的
delete from SERVERVARIABLES where SERVER_ID=? and VARIABLE_NAME=?
delete from SERVERVARIABLES where SERVER_ID=? and VARIABLE_NAME=?
insert into SERVERVARIABLES (DEFAULT_VALUE, description, SERVER_ID, VARIABLE_NAME) values (?, ?, ?, ?)
insert into SERVERVARIABLES (DEFAULT_VALUE, description, SERVER_ID, VARIABLE_NAME) values (?, ?, ?, ?)
我需要执行应该像
delete from SERVERVARIABLES where SERVER_ID=? and VARIABLE_NAME=?
insert into SERVERVARIABLES (DEFAULT_VALUE, description, SERVER_ID, VARIABLE_NAME) values (?, ?, ?, ?)
delete from SERVERVARIABLES where SERVER_ID=? and VARIABLE_NAME=?
insert into SERVERVARIABLES (DEFAULT_VALUE, description, SERVER_ID, VARIABLE_NAME) values (?, ?, ?, ?)
public void deleteservervariable(String serverId,String name) {
CriteriaBuilder builder = null;
EntityManager entitymanager = null;
try {
entitymanager = JPAUtility.getInstance().getEntityManager
(APIArtifactConstant.APIManagerCacheUnit);
builder = entitymanager.getCriteriaBuilder();
CriteriaDelete<Servervariable> apidelete = builder.createCriteriaDelete(Servervariable.class);
Root<Servervariable> apiserverVariabel = apidelete.from(Servervariable.class);
apidelete.where(builder.equal(apiserverVariabel.
get(APIArtifactImportConstant.id).
get(APIArtifactImportConstant.apiserverId),
serverId),builder.equal(apiserverVariabel.
get(APIArtifactImportConstant.id).
get(APIArtifactImportConstant.APIvariableName), name));
entitymanager.joinTransaction();
entitymanager.createQuery(apidelete).executeUpdate();
}
public void deleteservervariable(String serverId,String name)
public void presistservervariable(Servervariable servervariable,EntityManager entitymanager) {
try { entitymanager.joinTransaction();
entitymanager.persist(servervariable); } catch(Exception e) {
e.printStackTrace(); } }
解决方案
推荐阅读
- ruby-on-rails - 如何在重定向之前验证自己的路线?
- javascript - 在 SQLite3 中更新整数值
- java - 如何在 RecyclerView 顶部插入图片
- swift - 访问 UIViewController 中的自定义 UINavigationController 属性和方法
- r - 显示带有循环 rmarkown 的 html 表
- php - 为什么我没有自己写就得到一个标签
- thrift - 如果我将 Thrift 数据结构从一个文件移动到另一个文件,这是一项重大更改吗?
- path - 如何设置geth变量
- r - 簿记文档中的非 R 代码列表?
- c# - CustomAction 失败-“无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块。(ExceptionHRESULT:0x8007007E)”