Hallo,
ich arbeite an einem standalone Spring Programm. Es basiert auf einer Oracle Datenbank die mit Eclipselink jpa angesprochen wird.
Wenn ich ein Objekt einlese ist es erstmal korrekt. Wenn ich dann mit einem anderen Programm eine Änderung in der Datanbank mache, und das Objekt neu einlese, dann bekomme ich die alten, ungeänderten Daten zurück. mBeebde ich das Programm und starte es erneut, dann bekomme ich die aktuellen Daten.
Ich habe schon eine Menge ausprobiert. Vor dem Einlesen oder nach dem Speichern flush, clear oder refresh von EntityManager aufgerufen. Aber es bleibt dabei. Mein Programm bekommt keine externen Änderungen der Datenbank mit.
Eclipselink weaving ist ausgeschaltet. Stattdesen wird der SpringLoadTimeWeaver verwendet.
So sieht die Definition von EntityManagerFactory und TransactionManager aus:
hunter3
ich arbeite an einem standalone Spring Programm. Es basiert auf einer Oracle Datenbank die mit Eclipselink jpa angesprochen wird.
Wenn ich ein Objekt einlese ist es erstmal korrekt. Wenn ich dann mit einem anderen Programm eine Änderung in der Datanbank mache, und das Objekt neu einlese, dann bekomme ich die alten, ungeänderten Daten zurück. mBeebde ich das Programm und starte es erneut, dann bekomme ich die aktuellen Daten.
Ich habe schon eine Menge ausprobiert. Vor dem Einlesen oder nach dem Speichern flush, clear oder refresh von EntityManager aufgerufen. Aber es bleibt dabei. Mein Programm bekommt keine externen Änderungen der Datenbank mit.
Eclipselink weaving ist ausgeschaltet. Stattdesen wird der SpringLoadTimeWeaver verwendet.
So sieht die Definition von EntityManagerFactory und TransactionManager aus:
Code:
<tx:annotation-driven transaction-manager = "transactionManager" proxy-target-class="true" />
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:far9" />
<property name="username" value="xxxxx"/>
<property name="password" value="xxxxx"/>
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="far"/>
<property name="jpaPropertyMap">
<props>
<prop key="eclipselink.weaving">false</prop>
</props>
</property>
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver">
</bean>
</property>
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.EclipseLinkJpaVendorAdapter">
<property name="showSql" value="false"/>
<property name="generateDdl" value="false"/>
<property name="database" value="ORACLE"/>
</bean>
</property>
<property name="jpaDialect">
<bean class="org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect" />
</property>
</bean>