Tag: eclipselink

JPA Eclipselink错误的序列号

我正在使用一些映射到Oracle DB-Tables的实体。 对于ID-Generation,我使用的注释序列生成器如下: @Id @SequenceGenerator(name = “SEQ_RULES”, sequenceName = “SEQUENZ_RULES”) @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “SEQ_RULES”) @Column(name = “SERIALNO”) protected Long serialno; 在程序执行期间,我从我的实体创建一个新实例,并希望保留这个生成的实例。 重新启动数据库后,我通过JPA-EclipseLink获取了错误的序列号,但没有通过控制台直接在数据库上。 我在persistence.xml中启用了以下属性,以获取生成的语句中使用的绑定参数。 例如:如果我生成一个我的实体的新实例并希望保留这个实例,那么我将获得2717 for serialNo并且如果我执行 SELECT SEQUENZ_RULES.NEXTVAL FROM DUAL 我得到2767作为nextval。 问题是JPA生成的serialNo必须是唯一的,现在我仍然有一些带有这个serialNo的数据集。 我得到一个例外: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (JASON.SYS_C0084866) violated Non是否有任何缓存通过eclipse影响序列生成或可能是什么错误? 二手组件: GlassFish 3.1.1 EclipseLink 2.3.0.v20110604-r9504 数据库:Oracle版本:Oracle Database 11g 11.1.0.7.0版 – 64位 驱动程序:Oracle JDBC驱动程序版本:11.2.0.1.0 […]

Java-EE6:FetchType.LAZY与静态编织抛出奇怪的exception

我的解决方案包含3个不同的项目: 使用Netbeans自动生成Facade的EJB项目来管理实体类和persistence.xml 包含所有@Entity注释和静态编织数据库类的类库,以及用于外观ejb的远程接口(在EJB和独立客户端之间共享) 独立客户端,主要由Swing GUI类组成 我使用Glassfish 3.1.2,Eclipselink 2.3作为JPA-provider,Netbeans 7.1.1和MySQL数据库。 我配置了一个Ant-task,它基于persistence.xml静态编织我的实体类。 我有几个@OneToOne,@ ManyToOne和@ManyToMany用fetch = FetchType.LAZY装饰的实体之间的注释关系。 现在我得到了以下错误: Exception in thread “Mainframe Loader” Local Exception Stack: Exception [EclipseLink-7242] (Eclipse Persistence Services – 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException Exception Description: An attempt was made to traverse a relationship using indirection that had a null Session. This often occurs when an entity with […]

扩展实体

我有一个名为AbstractEntity的类,它使用@MappedSuperclass注释。 然后我有一个名为User(@Entity)的类,它扩展了AbstractEntity。 这两个都存在于名为foo.bar.framework的包中。 当我使用这两个类时,一切正常。 但是现在我已经将包含这些文件的jar导入到另一个项目中。 我想重用User类并使用一些额外的字段来扩展它。 我认为@Entity public class User extends foo.bar.framework.User会做的伎俩,但我发现User的这个实现只inheritance了AbstractEntity中的字段,但没有来自foo.bar.framework.User。 问题是,如何让我的第二个User类inheritance第一个User实体类中的所有字段? User类实现都具有使用@Table(name =“name”)定义的不同表名。 我的课程看起来像这样 package foo.bar.framework; @MappedSuperclass abstract public class AbstractEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) protected Long id; @Column(nullable = false) @Version protected Long consistencyVersion; … } package foo.bar.framework; @MappedSuperclass abstract public class AbstractEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) protected Long id; […]

例外:必须从Java代理开始才能使用InstrumentationLoadTimeWeaver。 请参阅Spring文档

我试图执行测试时遇到exception请帮忙。 先感谢您 我正在使用 : Java 7,EclipseLink 2.5.0-SNAPSHOT,Spring 3.2.4 测试配置文件 : exception跟踪 : java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:122) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:109) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:75) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:312) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:211) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:284) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) […]

如何在jpql中为in-clause设置集合项?

JPA 2.0中是否有可能在jpql-query中为in-clause设置集合? (我正在使用EclipseLink) 下一个示例失败: TypedQuery q = em.createQuery(“select p from Person p where p.name in (?1)”, Person.class); List names = Arrays.asList(new String[] { “Bill Gates”, “Steve Jobs” }); // THIS FAILS q.setParameter(1, names); List persons = q.getResultList(); for (Person p: persons) { System.out.println(p.getName()); } 还有另一种方法吗?

如何进行连接提取而不是使用EclipseLink选择fectching?

我在两个实体之间有一个OneToOne关系。 默认情况下,这种关系很急切,但是在记录请求时,我只看到多个选择,不会出现连接 。 迫切渴望的同样的事情。 你知道如何告诉eclipselink使用连接提取(如hibernate中的@Fetch(JOIN))吗? 谢谢

如何在Netbeans中使用Eclipse-Link JPA应用静态编织Ant任务?

我使用的是Netbeans 7.1.1和Glassfish 3.1.2服务器。 作为JPA提供商,我决定使用随Netbeans一起提供的eclipse-link 2.3.0。 由于我想使用延迟抓取,我的项目由大约45个JPA实体类组成,它们之间有很多关系,所以我决定使用静态编织 。 此外,@ Entity类位于单独的Class Lib项目中,而persistence.xml驻留在EJB项目中。 我已按照此处的说明操作: http : //wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving/Static_Weaving 我将ant-task放入build-impl.xml文件(如下)。 使用Netbeans时这是正确的吗? 这是build-impl.xml的片段: pathelement路径中的所有jar文件也作为库包含在Netbeans IDE中。 点击“清理和构建”时,我现在收到以下错误: D:\workspace\MyProject\nbproject\build-impl.xml:703: taskdef class org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask cannot be found using the classloader AntClassLoader[] 我在这里弄错了什么?

JPA 2.1:Java 8日期/时间API简介

我想在我的JPA应用程序中添加对Java 8 Date / Time API(JSR-310)的支持。 很明显, JPA 2.1 不支持Java 8 Date / Time API 。 作为一种解决方法,最常见的建议是使用AttributeConverter 。 在我现有的应用程序中,我将实体更改为使用LocalDate / LocalDateTime类型作为列映射字段,并为它们添加了java.util.Date旧setter / getter。 我创建了相应的AttributeConverter类。 将Query.setParameter()与java.util.Date实例一起使用时, 我的应用程序现在失败了 (它在转换到新API之前工作)。 似乎JPA期望新的日期类型并且不会动态转换它。 我希望如果将一个参数传递给已注册AttributeConverter的类型的setParameter() ,它将由转换器自动转换。 但似乎并非如此,至少不使用EclipseLink 2.6.2 : java.lang.IllegalArgumentException: You have attempted to set a value of type class java.util.Date for parameter closeDate with expected type of class java.time.LocalDate from […]

当我使用A JPA Query的getResultList()时,结果是分离还是管理?

当我有一个我调用.getResultList()的JPA查询时,它会返回一个对象列表。 是否管理或分离了该列表中的对象? 也就是说,如果我对它们进行更改,我是否必须担心合并或持久化它们,还是会自动获取这些更改?

EclipseLink不会创建表

我正在用eclipseLink和Spring开发一个应用程序。 现在我正在使用h2之类的数据库。 我的麻烦是eclipseLink无法创建表。 这是我的配置。 persistence.xml中: //some classes definition 弹簧的context.xml 而且我发现文件create.sql为空!!! 我哪里做错了?