[SYNCOPE-1545] Fixing SAML2 and OIDC client apps storage with Oracle
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ClientAppDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ClientAppDAO.java
index 84fc38a..9262479 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ClientAppDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/ClientAppDAO.java
@@ -23,7 +23,7 @@
 import org.apache.syncope.core.persistence.api.entity.am.ClientApp;
 import org.apache.syncope.core.persistence.api.entity.policy.Policy;
 
-public interface ClientAppDAO<C extends ClientApp> {
+public interface ClientAppDAO<C extends ClientApp> extends DAO<C> {
 
     List<C> findByPolicy(Policy policy);
 
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/PersistenceContext.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/PersistenceContext.java
index b742829..db45c86 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/PersistenceContext.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/PersistenceContext.java
@@ -559,7 +559,7 @@
             final @Lazy RoleDAO roleDAO,
             final @Lazy CASSPClientAppDAO casSPClientAppDAO,
             final @Lazy OIDCRPClientAppDAO oidcRPClientAppDAO,
-            final SAML2SPClientAppDAO saml2SPClientAppDAO) {
+            final @Lazy SAML2SPClientAppDAO saml2SPClientAppDAO) {
 
         return new JPARealmDAO(roleDAO, casSPClientAppDAO, oidcRPClientAppDAO, saml2SPClientAppDAO);
     }
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java
index b3acd64..35e8d31 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPAOIDCRPClientApp.java
@@ -66,7 +66,7 @@
     @ElementCollection(fetch = FetchType.EAGER)
     @Enumerated(EnumType.STRING)
     @Column(name = "supportedGrantType")
-    @CollectionTable(name = "OIDCRPClientApp_SupportedGrantTypes",
+    @CollectionTable(name = "OIDCRPClientApp_SuppGrantTypes",
             joinColumns =
             @JoinColumn(name = "client_id", referencedColumnName = "id"))
     private Set<OIDCGrantType> supportedGrantTypes = new HashSet<>();
@@ -74,7 +74,7 @@
     @ElementCollection(fetch = FetchType.EAGER)
     @Enumerated(EnumType.STRING)
     @Column(name = "supportedResponseType")
-    @CollectionTable(name = "OIDCRPClientApp_SupportedResponseTypes",
+    @CollectionTable(name = "OIDCRPClientApp_SuppResTypes",
             joinColumns =
             @JoinColumn(name = "client_id", referencedColumnName = "id"))
     private Set<OIDCResponseType> supportedResponseTypes = new HashSet<>();
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java
index 65b9ad1..1291671 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/entity/am/JPASAML2SPClientApp.java
@@ -68,7 +68,7 @@
 
     @ElementCollection(fetch = FetchType.EAGER)
     @Column(name = "assertionAudience")
-    @CollectionTable(name = "SAML2SPClientApp_AssertionAudiences",
+    @CollectionTable(name = "SAML2SPClientApp_AssAud",
             joinColumns =
             @JoinColumn(name = "client_app_id", referencedColumnName = "id"))
     private Set<String> assertionAudiences = new HashSet<>();
@@ -77,43 +77,43 @@
     private String serviceProviderNameIdQualifier;
 
     @ElementCollection(fetch = FetchType.EAGER)
-    @Column(name = "signingSignatureAlgorithm")
-    @CollectionTable(name = "SAML2SPClientApp_SigningSignatureAlgs",
+    @Column(name = "sigAlg")
+    @CollectionTable(name = "SAML2SPClientApp_SigAlgs",
             joinColumns =
             @JoinColumn(name = "client_app_id", referencedColumnName = "id"))
     private List<XmlSecAlgorithm> signingSignatureAlgorithms = new ArrayList<>();
 
     @ElementCollection(fetch = FetchType.EAGER)
-    @Column(name = "signingSignatureReferenceDigestMethod")
-    @CollectionTable(name = "SAML2SPClientApp_SigningSignatureRefDigestAlgs",
+    @Column(name = "sigRefDigestMethod")
+    @CollectionTable(name = "SAML2SPClientApp_SigRefDigAlgs",
             joinColumns =
             @JoinColumn(name = "client_app_id", referencedColumnName = "id"))
     private List<XmlSecAlgorithm> signingSignatureReferenceDigestMethods = new ArrayList<>();
 
     @ElementCollection(fetch = FetchType.EAGER)
-    @Column(name = "encryptionDataAlgorithm")
-    @CollectionTable(name = "SAML2SPClientApp_EncryptionDataAlgs",
+    @Column(name = "encDataAlg")
+    @CollectionTable(name = "SAML2SPClientApp_EncDataAlgs",
             joinColumns =
             @JoinColumn(name = "client_app_id", referencedColumnName = "id"))
     private List<XmlSecAlgorithm> encryptionDataAlgorithms = new ArrayList<>();
 
     @ElementCollection(fetch = FetchType.EAGER)
-    @Column(name = "encryptionKeyAlgorithm")
-    @CollectionTable(name = "SAML2SPClientApp_EncryptionKeyAlgs",
+    @Column(name = "encKeyAlg")
+    @CollectionTable(name = "SAML2SPClientApp_EncKeyAlgs",
             joinColumns =
             @JoinColumn(name = "client_app_id", referencedColumnName = "id"))
     private List<XmlSecAlgorithm> encryptionKeyAlgorithms = new ArrayList<>();
 
     @ElementCollection(fetch = FetchType.EAGER)
-    @Column(name = "signingSignatureBlackListedAlgorithm")
-    @CollectionTable(name = "SAML2SPClientApp_BlacklistedSigningAlgs",
+    @Column(name = "sigBlAlg")
+    @CollectionTable(name = "SAML2SPClientApp_BlSigAlgs",
             joinColumns =
             @JoinColumn(name = "client_app_id", referencedColumnName = "id"))
     private List<XmlSecAlgorithm> signingSignatureBlackListedAlgorithms = new ArrayList<>();
 
     @ElementCollection(fetch = FetchType.EAGER)
-    @Column(name = "encryptionBlackListedAlgorithm")
-    @CollectionTable(name = "SAML2SPClientApp_BlacklistedEncryptionAlgs",
+    @Column(name = "encBlAlg")
+    @CollectionTable(name = "SAML2SPClientApp_BlEncAlgs",
             joinColumns =
             @JoinColumn(name = "client_app_id", referencedColumnName = "id"))
     private List<XmlSecAlgorithm> encryptionBlackListedAlgorithms = new ArrayList<>();