2011-03-08 3 views
1

J'ai l'intention d'utiliser la structure web de lecture avec AciveJDBC pour la persistance. Le problème avec JDBC actif est qu'il nécessite des instruments. Ma question est,jouer cadre avec ActiveJDBC

Aurai-je besoin de faire un redémarrage sur le serveur pour voir les modifications apportées aux classes qui ont besoin d'instrumentation? En tant que clause de non-responsabilité, je n'ai jamais essayé ce que vous avez dit.

Répondre

1

Mais d'après mes connaissances sur le fonctionnement de Play, cela dépendra de votre intégration d'ActiveJDBC avec Play. Pour autant que je sache, il n'y a aucun module existant pour cette intégration

Cela signifie que vous devrez créer quelque chose pour brancher votre modèle (basé sur ActiveJDBC) avec le modèle de jeu. Semblable à ce que fait le plugin Siena, par exemple.

Une fois terminé, sans modifications supplémentaires, Play ne recompilera que la classe Java, en utilisant le compilateur Eclipse, mais il ne générera aucune instrumentation. Pour que cette instrumentation se produise, vous devrez probablement modifier le processus de recompilation afin qu'il génère également l'instrumentation.

Donc, réponse courte, par défaut l'instrumentation ne fonctionnera pas.

Une question en quelque sorte liée: avez-vous vraiment besoin de ActiveJDBC? Qu'est-ce que cela offre que JPA/Hibernate (la valeur par défaut dans Play) ne le sera pas? Je comprends l'appel d'un comportement "Active Record" , mais même dans la communauté Ruby il y a quelques plaintes sur sa "magie". Êtes-vous sûr que JPA n'est pas assez bon? L'utiliser vous fera gagner du temps et des maux de tête en travaillant avec Play, et Hibernate une grande équipe et beaucoup d'expérience en développement ORM, ce qui en fait un excellent outil ...

+0

Merci pour votre réponse détaillée. J'essayais en fait de rester à l'écart de l'hibernation (quand ça marche, ça marche, quand ça ne marche pas ...). Quoi qu'il en soit, je vais croire que hibernate/jpa ne me gâchera plus à l'avenir avec des comportements inattendus. – joshua

3

joshua: cela n'a jamais été tenté, mais la réponse serait être non, vous devrez redémarrer le serveur pour avoir des changements dans les modèles pour avoir un effet. Cependant, si vous pratiquez un TDD réel et écrivez des tests qui testent complètement les modèles, vous n'aurez pas à redémarrer. Pour Pere Villega: votre réponse est sur la marque, et Hibernate est vraiment un cadre populaire, mais "être un excellent outil" est une question d'opinion et à mon humble avis, il ne l'est pas, d'où j'ai développé ActiveJDBC. Un petit fait: la version originale d'ActiveJDBC en 2009 a fait de l'instrumentation à la volée en mémoire après le démarrage d'une application, ce qui était génial, mais cela s'est avéré peu fiable à cause du comportement du chargeur de classe.

De plus, j'ai développé un framework web Java similaire à Ruby on Rails: http://code.google.com/p/activeweb/, qui a une intégration avec ActiveJDBC. Actuellement, il recompilera/rechargera les contrôleurs, mais ne recompilera pas les instruments. Cependant, j'ai l'intention d'introduire cette capacité dans le cadre à l'avenir.

acclamations,

Igor

Questions connexes