sql >> Database >  >> NoSQL >> MongoDB

Wat is het verschil tussen Spring Data MongoDB en Hibernate OGM voor MongoDB?

Disclaimer:ik ben de leider van het Spring Data-project, dus ik zal hier voornamelijk de Spring Data-kant behandelen:

Ik denk dat het belangrijkste onderscheid tussen de twee projecten is dat het Hibernate OGM-team ervoor koos om hun inspanningen te concentreren rond de PPV, terwijl het Spring Data-team dat expliciet niet deed. De redenen zijn als volgt:

  • JPA is een inherent relationele API. In de eerste twee zinnen van de specificatie staat dat het een API is voor object-relationele mapping. Dit komt ook tot uitdrukking in kernthema's van de API:het gaat over tabellen, kolommen, joins, transacties. Concepten die niet noodzakelijkerwijs overdraagbaar zijn naar de NoSQL-wereld.
  • U kiest meestal een NoSQL-winkel vanwege de speciale eigenschappen (bijv. georuimtelijke zoekopdrachten op MongoDB, het kunnen uitvoeren van grafiektraversals voor Neo4j). Geen van deze is (en zal) beschikbaar zijn in JPA, daarom moet u sowieso propriëtaire extensies opgeven.
  • Erger nog, JPA bevat concepten die gebruikers eenvoudig in de verkeerde richting leiden als ze ervan uitgaan dat ze aan een NoSQL-winkel werken zoals ze in JPA zijn gedefinieerd:hoe moet een transactieterugdraaiing redelijkerwijs bovenop een MongoDB worden geïmplementeerd?
  • li>

Dus met Spring Data hebben we ervoor gekozen om liever een consistent programmeermodel te bieden voor de ondersteunde winkels, maar probeer niet alles in een enkele over-abstracte API te forceren:je krijgt de bekende sjabloonimplementaties, je krijgt de repository-abstractie, die identiek werkt voor alle winkels, maar laten we je winkelspecifieke functies en concepten benutten.



  1. Automatiseren en beheren van MongoDB in de cloud

  2. 2 Helm-kaarten met gedeelde Redis-afhankelijkheid

  3. Mongodb/mangoest-insert is geen functie

  4. mongodb 3.x-stuurprogramma Android-compatibiliteit