Spring 未正确检索更新的实体

Spring 未正确检索更新的实体,spring,hibernate,jpa,jta,Spring,Hibernate,Jpa,Jta,我有一个运行在glassfish上的spring mvc应用程序。我不知道我的问题的根源,所以我将尽可能详细地阐述。我有两门课 用户类 @Entity @Table(name="Users") public class User extends BaseEntity<User> { // other fields @OneToMany(fetch = FetchType.EAGER, mappedBy = "user") @OrderBy(value = "

我有一个运行在glassfish上的spring mvc应用程序。我不知道我的问题的根源,所以我将尽可能详细地阐述。我有两门课
用户类

@Entity
@Table(name="Users")
public class User extends BaseEntity<User> {
    // other fields

    @OneToMany(fetch = FetchType.EAGER, mappedBy = "user")
    @OrderBy(value = "id DESC")
    private Set<OtherClass> objs;

    // getters and setters         
}
@实体
@表(name=“Users”)
公共类用户扩展BaseEntity{
//其他领域
@OneToMany(fetch=FetchType.EAGER,mappedBy=“user”)
@订购人(value=“id DESC”)
私有集合对象;
//接球手和接球手
}
另一类:

@Entity
@Table(name="OtherObjects")
public class OtheClass extends BaseEntity<OtheClass> {
    // other fields

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "User", nullable = false)
    private User user;

    // getters and setters
}
@实体
@表(name=“OtherObjects”)
公共类OtherClass扩展了BaseEntity{
//其他领域
@manytone(fetch=FetchType.EAGER)
@JoinColumn(name=“User”,nullable=false)
私人用户;
//接球手和接球手
}
我在应用程序启动时检索用户对象,并将其放入会话对象中。运行时,用户可以向数据库添加“OtherClass”对象。otherClass对象正确地保存在DB中(与Users表中正确的用户行相关)。问题是,在用户在运行时添加otherClass对象后,其他对象集不会更新。更奇怪的是,即使我再次从数据库中检索用户对象,我也不会得到OtherClass的更新集。 这是我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">
    <persistence-unit name="myPU" transaction-type="JTA">

        <jta-data-source>jdbc/MyDataSource</jta-data-source>

        <class>org.company.entities.OtherClass</class>
        <class>org.company.entities.User</class>

        <exclude-unlisted-classes />

        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            <property name="hibernate.show_sql" value="false" />
            <property name="hibernate.current_session_context_class" value="thread" />
            <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
            <property name="hibernate.hbm2ddl.auto" value="create" />
        </properties>

    </persistence-unit>
</persistence>

jdbc/MyDataSource
org.company.entities.OtherClass
org.company.entities.User

我最近将我的事务管理器从spring的jpa事务管理器更改为JTA事务管理器。(我想这与此有关)。有什么想法吗?如果需要进一步的代码或配置,请告诉我,我将发布更新。

JPA不会自动维护双向关联,而是由开发人员更新关系的双方。在这种情况下,在创建OtherClass对象时,应将其添加到用户对象中的objs集合。

在从数据库中重新读取该对象之前,可能需要将其逐出。否则它可以使用缓存副本。我想可能是这样的,所以我试图通过persistence.xml找到一个“no cache”配置。你知道吗?