Nous essayons d'utiliser orientdb 1.7.8 dans notre projet, mais nous frappons l'exception suivante:Comment résoudre un problème de compatibilité avec la validation JSR-303 et orientdb
Caused by: java.lang.UnsupportedOperationException: getProviderUtil
at com.orientechnologies.orient.object.jpa.OJPAPersistenceProvider.getProviderUtil(OJPAPersistenceProvider.java:80)
at javax.persistence.Persistence$1.isLoaded(Persistence.java:78)
at org.apache.bval.jsr303.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:34)
at org.apache.bval.jsr303.resolver.DefaultTraversableResolver.isReachable(DefaultTraversableResolver.java:60)
at org.apache.bval.jsr303.resolver.CachingTraversableResolver.isReachable(CachingTraversableResolver.java:82)
at org.apache.bval.jsr303.ConstraintValidation.isReachable(ConstraintValidation.java:241)
... 158 more
Cela se produit parce que nous utilisons JSR -303 validation dans notre projet (qui est actuellement en fait non-jpa). La bibliothèque de validation analyse le gestionnaire persistant JPA, que Orientdb fournit dans son jar orient-objet. Nous voulons également utiliser le framework objet pour orientdb dans le futur, donc l'exclure n'est pas une option.
L'implémentation JPA PersistentceProvider de OrientDB semble incomplète:
public class OJPAPersistenceProvider implements PersistenceProvider {
.... implemented all other methods ...
@Override
public ProviderUtil getProviderUtil() {
throw new UnsupportedOperationException("getProviderUtil");
}
maintenant le pot de validation reprend automatiquement cette classe, comme le pot-orientdb objet a le fichier javax.persistence.spi.PersistenceProvider-INFO META /prestations de service.
Alors, existe-t-il une solution de contournement pour cela? Ou orientdb supportera-t-il la méthode getProviderUtil pour qu'elle puisse être utilisée avec la validation de jsr 303? Est-il possible que le validateur ignore cette implémentation jpa particulière?
La modification de l'implémentation jsr pour utiliser l'implémentation de validation d'hibernation donne la même exception à .
Un problème d'utiliser quelque chose qui n'est pas une véritable implémentation JPA peut-être? –
Oui, l'implémentation d'orientdb jpa n'est pas complète. Je suis à la recherche d'une solution de contournement. – Wouter