Je suis un noob complet quand il s'agit de grails (et encore très noobish quand il s'agit de groovy) donc je m'excuse si c'est une question stupide. Je construis une application Web simple et je veux contrôler des parties du domaine dans mon application en fonction des objets du système de fichiers (c'est-à-dire la structure de répertoires et le type de fichier) plutôt que des données de base de données. Est-ce facile de le faire ou est-ce que les objets du domaine sont tellement liés à GORM qu'il ne vaut pas la peine d'essayer?Les classes de domaine grails doivent-elles être liées à une base de données?
Répondre
J'ai moi-même rencontré cette question il y a quelques semaines. Vous pouvez simplement ajouter l'extrait suivant au code Domain Class
.
def isAttached()
{
return false
}
Maintenant, il n'est pas connecté à votre base de données. Voila!
Il semble que, bien qu'il n'y ait pas eu de réponse, j'ai demandé aux versions ultérieures de grails de gérer cette situation. –
Un couple de façons de le faire. D'abord, vous pouvez déclarer vos propriétés mappées aux données du système de fichiers en tant que transitoires, et accéder au système de fichiers lorsque les getters/setters sont appelés (vous devez les remplacer). Vous pouvez également les charger en utilisant onLoad si vous avez besoin qu'ils soient toujours en mémoire.
Deuxième - Hibernate gère la persistance. Hibernate vous permet de définir votre propre type d'utilisateur, qui peut gérer la persistance comme vous le souhaitez. De cette façon, cela pourrait vous arriver de façon plus transparente (même si vous devez vous assurer que vous comprenez assez bien Hibernate, pour s'assurer qu'il n'y a pas d'effets secondaires, je ne suis pas sûr).
http://i-proving.com/space/Technologies/Hibernate/User+Types+in+Hibernate
Il n'y a aucun moyen intégré pour la carte des classes de domaine pour déposer des objets du système que vous avez décrit, mais aussi il n'y a pas besoin que vos classes de domaine à une carte base de données relationnelle. Le sujet de la création d'une application Grails qui n'utilise pas de base de données relationnelle est adressé here et here (et éventuellement ailleurs).
Vous pouvez également utiliser:
class YourDomainClass {
static mapWith = "none" // disable persistence for this domain class
Voir grails documentation et this answer. Apparaît avoir été ajouté dans Grails 2.0.1 mais pas documenté jusqu'à la version 2.3.0.
- 1. Accès à la base de données sans les classes de domaine avec Grails
- 2. Classes de domaine d'héritage dans Grails
- 3. Liste de toutes les classes de domaine dans Grails
- 4. Sauvegarder les classes de domaine associées dans Grails
- 5. 2 classes de domaine pour 1 contrôleur dans les grails?
- 6. Interception de propriété des classes de domaine Grails
- 7. Grails itérant à travers les tables de base de données
- 8. Numéro de conception des classes de domaine Grails
- 9. Oracle Base de données de performance liées
- 10. Charger deux tables liées dans une base de données Oracle
- 11. Quand faut-il hasMany être utilisé pour N: 1 relations dans les classes de domaine de Grails?
- 12. Grails contraintes de domaine définition
- 13. Filtres/intercepteurs ambiants pour les classes de domaine dans Gorm/Grails?
- 14. Mapper les classes à la base de données avec ado.net
- 15. Grails connexions de base de données dynamiques?
- 16. Comment accéder aux classes de domaine Grails dans la couche de service Java?
- 17. Accès à des classes de domaine ou des haricots de printemps à partir de routes chameau dans Grails
- 18. Comment désactiver le chargement paresseux hibernate pour toutes les classes de domaine dans les grails?
- 19. Deux classes de modèle - une table de base de données
- 20. Ajouter un champ à une classe de domaine Grails?
- 21. Quelle est la meilleure façon de déclarer l'association triée dans les classes de domaine grails?
- 22. Authentification Glassfish: le domaine peut-il être une base de données externe
- 23. Peut-être sqlite être une base de données inmemory également?
- 24. Grails DataSource pour l'accès à la base de données MYSQL et les migrations à distance
- 25. contrôleur de vue de modèle dans les grails avec backend de base de données?
- 26. problème avec les bibliothèques ou classes liées?
- 27. Suppression des contrôleurs et des classes de domaine dans les grails
- 28. Domaine itération de classe dans Grails
- 29. problème Grails avec contraint annulable en classe de domaine
- 30. Comment lier des données dans une base de données à mes classes de données?
Ce n'est pas une réponse, mais vous serez peut-être intéressé d'apprendre que l'implémentation de persistance est abstraite de GORM. Cela permettra à GORM de travailler avec des implémentations noSQL comme Redis, Neo4j, etc. et d'autres telles que les dépôts JCR. Il devrait être possible d'ajouter une implémentation basique du système de fichiers. Gardez un œil sur les annonces de Grails. –