Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2011-09-19 15:13:50 +0000
committerkmoore2011-09-19 15:13:50 +0000
commit41c89c4c8085ae90a30a12b42aa65e75e3543587 (patch)
tree80f2be63408a431da6136fe6747ecbd7c4ee1d77 /common/plugins/org.eclipse.jpt.common.eclipselink.core
parent068f9ececb0ac19b0f49aae3690e17c6035a8cb3 (diff)
downloadwebtools.dali-41c89c4c8085ae90a30a12b42aa65e75e3543587.tar.gz
webtools.dali-41c89c4c8085ae90a30a12b42aa65e75e3543587.tar.xz
webtools.dali-41c89c4c8085ae90a30a12b42aa65e75e3543587.zip
356226 - [EclipseLink] 2.4 platform support including eclipselink-orm.xsd
Diffstat (limited to 'common/plugins/org.eclipse.jpt.common.eclipselink.core')
-rw-r--r--common/plugins/org.eclipse.jpt.common.eclipselink.core/schemas/eclipselink_orm_2_4.xsd58
1 files changed, 57 insertions, 1 deletions
diff --git a/common/plugins/org.eclipse.jpt.common.eclipselink.core/schemas/eclipselink_orm_2_4.xsd b/common/plugins/org.eclipse.jpt.common.eclipselink.core/schemas/eclipselink_orm_2_4.xsd
index 1b8e22678c..774c5f6d2a 100644
--- a/common/plugins/org.eclipse.jpt.common.eclipselink.core/schemas/eclipselink_orm_2_4.xsd
+++ b/common/plugins/org.eclipse.jpt.common.eclipselink.core/schemas/eclipselink_orm_2_4.xsd
@@ -235,6 +235,12 @@
* (Optional) The cache coordination mode.
*/
CacheCoordinationType coordinationType() default SEND_OBJECT_CHANGES;
+
+ /**
+ * (Optional) The database change notification mode.
+ * Note that database event listener must also be configured for the persistence unit/session.
+ */
+ DatabaseChangeNotificationType databaseChangeNotificationType() default DatabaseChangeNotificationType.INVALIDATE;
}
</xsd:documentation>
@@ -251,6 +257,7 @@
<xsd:attribute name="refresh-only-if-newer" type="xsd:boolean"/>
<xsd:attribute name="disable-hits" type="xsd:boolean"/>
<xsd:attribute name="coordination-type" type="orm:cache-coordination-type"/>
+ <xsd:attribute name="database-change-notification-type" type="orm:database-change-notification-type"/>
</xsd:complexType>
<!-- **************************************************** -->
@@ -452,6 +459,47 @@
<!-- **************************************************** -->
+ <xsd:simpleType name="database-change-notification-type">
+ <xsd:annotation>
+ <xsd:documentation>
+
+ /**
+ * Configures what type of database change notification an entity/descriptor should use.
+ * This is only relevant if the persistence unit/session has been configured with a DatabaseEventListener,
+ * such as the OracleChangeNotificationListener that receives database change events.
+ * This allows for the EclipseLink cache to be invalidated or updated from database changes.
+ *
+ * @see Cache#databaseChangeNotificationType()
+ * @see org.eclipse.persistence.descriptors.CachePolicy#setDatabaseChangeNotificationType(DatabaseChangeNotificationType)
+ * @author James Sutherland
+ * @since EclipseLink 2.4
+ */
+ public enum DatabaseChangeNotificationType {
+ /**
+ * No database change events will be processed.
+ */
+ NONE,
+
+ /**
+ * Invalidates the EclipseLink cache when a database change event is received for an object.
+ * This requires a DatabaseEventListener to be configured with the persistence unit or session.
+ * This requires that the database change can be determine to affect the object, some database change events,
+ * such as the OracleChangeNotificationListener (Oracle DCN/QCN) only give the ROWID, so changes to secondary
+ * table or relationships may not be able to be determined to affect and object unless its version is also changed.
+ */
+ INVALIDATE
+ }
+
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="NONE"/>
+ <xsd:enumeration value="INVALIDATE"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <!-- **************************************************** -->
+
<xsd:complexType name="change-tracking">
<xsd:annotation>
<xsd:documentation>
@@ -3342,7 +3390,14 @@
* Specifies that different tables are used for each tenant. The table scan
* be uniquely identified by name, schema/tablespace.
*/
- TABLE_PER_TENANT
+ TABLE_PER_TENANT,
+
+ /**
+ * Specifies that the DB will handle the tenant filtering on all SELECT,
+ * UPDATE and DELETE queries. Using this type assumes that the platform
+ * used with your persistence unit does indeed support VPD.
+ */
+ VPD
}
</xsd:documentation>
@@ -3350,6 +3405,7 @@
<xsd:restriction base="xsd:token">
<xsd:enumeration value="SINGLE_TABLE"/>
<xsd:enumeration value="TABLE_PER_TENANT"/>
+ <xsd:enumeration value="VPD"/>
</xsd:restriction>
</xsd:simpleType>

Back to the top