Tag: toplink essentials

实体是否默认缓存在jpa中?

我将实体添加到我的数据库,它工作正常。 但是当我检索List时,我得到了旧实体,我添加的新实体在我取消部署应用程序并再次重新部署之前不会显示。 这意味着我的实体默认是缓存的吗? 但是,我没有在persistence.xml或任何此类文件中对缓存实体进行任何设置。 我甚至尝试过调用flush(),refresh()和merge()。 但它仍然只显示旧实体。 我错过了什么吗? 请帮帮我。

将参数设置为IN表达式的列表

每当我尝试将列表设置为在IN表达式中使用的参数时,我都会得到一个Illegal参数exception。 互联网上的各种post似乎表明这是可能的,但它肯定不适合我。 我正在使用Glassfish V2.1和Toplink。 有没有其他人能够让这个工作,如果是这样的话怎么样? 这是一些示例代码: List logins = em.createQuery(“SELECT a.accountManager.loginName ” + “FROM Account a ” + “WHERE a.id IN (:ids)”) .setParameter(“ids”,Arrays.asList(new Long(1000100), new Long(1000110))) .getResultList(); 以及堆栈跟踪的相关部分: java.lang.IllegalArgumentException:您试图为参数accountIds设置类型类java.util.Arrays $ ArrayList的值,具有类java.lang.Long的预期类型来自查询字符串SELECT a.accountManager.loginName FROM Account a WHERE a .id IN(:accountIds)。 at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.setParameterInternal(EJBQueryImpl.java:663) at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.setParameter(EJBQueryImpl.java:202) 在com.corenap.newtDAO.ContactDaoBean.getNotificationAddresses(ContactDaoBean.java:437) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) 在com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at […]