如果标题不明确,我很抱歉,我真的不知道如何让它更清晰。
基本上,我想创建一个Java类,其中一个属性是一个函数,我想用EclipseLink在数据库中保存这个类的实例(实际上,这个类将是&# 34;规则"计算一些学校标记,取决于作为该功能的参数给出的标准。)
我尝试使用lambda表达式,它一直很好用,直到我试图保留这个类的对象,这些对象没有用。这是我得到的那种错误:
[EL Severe]: ejb: 2016-06-07 16:43:19.288--ServerSession(640363654)--java.lang.ExceptionInInitializerError
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: javax.persistence.PersistenceException: Exception [EclipseLink-28019] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.EntityManagerSetupException
Exception Description: Deployment of PersistenceUnit [EvalComp_PUnit] failed. Close all factories for this PersistenceUnit.
Internal Exception: java.lang.ExceptionInInitializerError
这是我使用的代码:
public interface Calcul
{
public abstract Double calcul(Object arg);
}
此外:
@Entity
public class Regle implements Serializable
{
//---------------------------- Attributs -----------------------------------
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String libelle;
private Calcul formule;
}
(我没有把吸气剂放在那里,我不认为他们在这里很有用。)
然后,我用来持久化类的方法:
public Regle creerRegle(String libelle, Calcul calcul) throws Throwable
{
Regle r = new Regle(libelle, calcul);
Regle test = trouverRegleParLibelle(libelle);
if (test == null)
{
try
{
JpaUtil.creerEntityManager();
RegleDao dao = new RegleDao();
JpaUtil.ouvrirTransaction();
dao.create(r);
JpaUtil.validerTransaction();
JpaUtil.fermerEntityManager();
return r;
}
catch(Exception e)
{
throw e;
}
}
else
{
return null;
}
(它基本上创建了一个EntityManager,启动了一个事务,持久化了对象,提交并关闭了事务。这是在这段代码中的所有函数中完成的,我不认为问题来自这里。 )
最后,在主要课程中:
Calcul test = (Object l) ->
{
List<Boolean> li = (List<Boolean>) l;
Double res = 20.;
for (Boolean b : li)
{
if (res == 0.)
{
break;
}
else if (!b)
{
res--;
}
}
return res;
};
r = servM.creerRegle(libelle, test);
你知道我能做些什么来解决这个问题吗?
谢谢,
LeChocDesGitans。