Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Lambda表达式作为使用者参数无法正常工作_Java_Jpa_Lambda - Fatal编程技术网

Java Lambda表达式作为使用者参数无法正常工作

Java Lambda表达式作为使用者参数无法正常工作,java,jpa,lambda,Java,Jpa,Lambda,我想通过JPA创建保存和删除方法。我发现使用一个执行事务的通用方法会很好 但我的代码似乎并不像我预期的那样工作(我想我可能会在消费者逻辑中出错?) class-MyClass{ 私人实体管理者实体管理者; MyClass(){ entityManager=Persistence.createEntityManager工厂(“持久化单元”) .createEntityManager(); } 公共作废保存(MyObj obj){ 执行InsideTransaction(entityManager-

我想通过JPA创建保存和删除方法。我发现使用一个执行事务的通用方法会很好

但我的代码似乎并不像我预期的那样工作(我想我可能会在消费者逻辑中出错?)

class-MyClass{
私人实体管理者实体管理者;
MyClass(){
entityManager=Persistence.createEntityManager工厂(“持久化单元”)
.createEntityManager();
}
公共作废保存(MyObj obj){
执行InsideTransaction(entityManager->entityManager.persist(obj));
}
公共作废删除(MyObj obj){
执行InsideTransaction(entityManager->entityManager.remove(obj));
}
私有void executeInsideTransaction(消费者诉讼){
EntityTransaction=entityManager.getTransaction();
试一试{
transaction.begin();
接受(实体管理器);
commit();
}捕获(运行时异常e){
transaction.rollback();
error(“MyClass上的事务出错并被回滚!{}”,e);
}
}
公共静态void main(字符串[]args){
MyObj=新的MyObj();
MyClass MyClass=新的MyClass();
myClass.save(obj);//它什么也不做
}

它既不会抛出任何异常,也不会持久化/删除数据库中的对象。

我看不出这是
使用者的问题。
你确定你正确使用了
EntityManager
吗?创建管理器是正确的,因为方法“get”在这个类中工作正常。所以我想问题出在:lambda expr/Consumer(可能消费者的逻辑不正确?)/action.accept(entityManager).但是我找不到bugNo的具体位置,它们看起来很好。这就是为什么我建议问题出在其他地方。错误地使用像
消费者
这样的FI是很困难的。你真的将异常记录到控制台上了吗?你的记录器可能记录在其他地方了吗?你添加了断点了吗?好的,我想我知道了d找出它的来源。只是错误地使用了JPA。问题是我确实没有使用
MyObj=new MyObj();
(从数据库中获取一个)。而是使用
MyObj MyObj=myClass.getById(5)
。这个对象有自动生成的主键,所以当我再次尝试保存它时,JPA可能不会在数据库中再创建一行,但实际上什么也不做。我将详细介绍。感谢您的帮助!我看不出这是
消费者的问题。您确定您正在使用
EntityManager
正确吗?创建管理器是正确的,因为方法“get”在这个类中工作得很好。所以我想问题出在:lambda expr/Consumer(可能Consumer的逻辑不正确?)/action.accept(entityManager).但是我找不到bugNo的具体位置,它们看起来很好。这就是为什么我建议问题出在其他地方。错误地使用像
消费者
这样的FI是很困难的。你真的将异常记录到控制台上了吗?你的记录器可能记录在其他地方了吗?你添加了断点了吗?好的,我想我知道了d找出它的来源。只是错误地使用了JPA。问题是我确实没有使用
MyObj=new MyObj();
(从数据库中获取一个)。而是使用
MyObj MyObj=myClass.getById(5);
。而且该对象已自动生成主键,因此当我再次尝试保存它时,JPA可能不会在数据库中再创建一行,但实际上什么也不做。我将详细介绍。感谢您的帮助!