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
Jakarta ee 当我迁移到纯javaEE6时,对象引用了一个未保存的临时实例_Jakarta Ee_Jpa_Jpa 2.0_Java Ee 6 - Fatal编程技术网

Jakarta ee 当我迁移到纯javaEE6时,对象引用了一个未保存的临时实例

Jakarta ee 当我迁移到纯javaEE6时,对象引用了一个未保存的临时实例,jakarta-ee,jpa,jpa-2.0,java-ee-6,Jakarta Ee,Jpa,Jpa 2.0,Java Ee 6,我们有一个javaEE6应用程序,其开发方式如下: 为了简化,我们有以下实体交互、客户和标题。客户和标题链接如下: public class Customer { @Embedded @XmlElement(required = true) private Name name = new Name(); } @Embeddable public class Name { @NotNull @ManyToOne(fetch = FetchType.EAGE

我们有一个javaEE6应用程序,其开发方式如下: 为了简化,我们有以下实体交互、客户和标题。客户和标题链接如下:

public class Customer {
    @Embedded
    @XmlElement(required = true)
    private Name name = new Name();
}

@Embeddable
public class Name {
    @NotNull
    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "TITLE")
    private Title title;
}

public class Title {
}
然后,我们对每个实体都有bean:InteractionBean、CustomerBean/CustomerBean、TitleBean/TitleBean都用ConversationScope注释

然后在客户页面中,我们有:

<p:selectOneMenu value="#{customer.name}">
    <f:selectItem itemLabel="" itemValue="" />
    <f:selectItems value="#{titlesBean.elements()}" var="elem" itemLabel="#{elem.label}" itemValue="#{elem}" />
</p:selectOneMenu>
在customer页面上,有一个next按钮,用于保存customer实体,但会抛出上述错误。看起来,尽管TitleBean和CustomerBean都用ConversationScope标记,但使用的entityManager是不同的。关于entityManager,它与所有其他服务一样,以默认范围注入到服务中

在它工作之前,但我们使用seam的注释:

@ExtensionManaged
@ConversationScoped
@Produces
@PersistenceUnit(unitName = "pu")
@MeveoJpa
EntityManagerFactory emf;
有什么建议吗

更新: 我目前正在研究PersistenceContext.EXTENDED+ConversationScope,但仍然无法使其正常工作

谢谢。

第一印象


@SessionScoped和@ConversationScoped具有钝化功能。因此,由其中一个注释的bean必须实现可序列化以及bean成员属性

嗨,是的,很抱歉。是的,所有Bean和服务类都扩展了一个实现可序列化的基类。我已经解决了这个问题,因为entityManager的实例不同,这就是为什么标题实体从一个事务分离到另一个事务的原因。但我还没有任何解决方案。请使用注释PersistenceContext来注入实体管理器,而不是工厂的注释PersistenceUnit。是的,我实际上在JavaEE6中使用PersistenceContext。目前,我认为我将继续使用从seam管理的ExtensionManager,直到DeltaSpike发布。
@ExtensionManaged
@ConversationScoped
@Produces
@PersistenceUnit(unitName = "pu")
@MeveoJpa
EntityManagerFactory emf;