Comment puis-je renommer hibernate_sequence? Les méthodes pour générer une séquence par table (et donner des noms spécifiques à ces séquences) sont bien documentées, mais ce n'est pas ce que je cherche. Cela ne me dérange pas d'avoir une séquence partagée par toutes les classes de domaine - j'ai juste besoin de lui donner un nom spécifique à l'application.Remplacer le nom de séquence par défaut dans Grails
Répondre
Il semble y avoir une demande de fonctionnalité/amélioration ouverte dans la JIRA Hibernate pour la rendre globalement configurable: Make the default sequence name globally configurable. Je crois que, pour contourner le problème, vous devez définir l'attribut 'generator' sur le même nom pour toutes les classes de domaine (par défaut hibernate_sequence) pour chaque champ @Id. Voir oracle sequence created.
Comme vous avez fait allusion dans votre question, il pourrait y avoir un moyen de le faire par votre dialecte sous-classement base de données - comme beaucoup l'ont suggéré une séquence par table approche.
est la séquence Changement de nom à mon humble avis ne sont pas directement possible, mais vous pourriez personnaliser l'identité comme décrit http://www.grails.org/doc/latest/guide/5.%20Object%20Relational%20Mapping%20(GORM).html#5.5.2.4%20Custom%20Database%20Identity au générateur: « natif ». Voir http://docs.jboss.org/hibernate/stable/core/reference/en/html/mapping.html#mapping-declaration-id-generator pour plus de détails.
Voici le code que j'utilisé pour définir le nom de la séquence.
D'abord, le SequenceGenerator:
package com.foo;
import java.util.Properties;
import org.hibernate.MappingException;
import org.hibernate.dialect.Dialect;
import org.hibernate.id.SequenceGenerator;
import org.hibernate.type.Type;
public class TableNameSequenceGenerator extends SequenceGenerator {
public static final String CUSTOM_SEQUENCE_NAME = "MYAPP_SEQUENCE"
public void configure(Type type, Properties params, Dialect dialect) throws MappingException {
if(params.getProperty(SEQUENCE) == null || params.getProperty(SEQUENCE).length() == 0) {
String seqName = CUSTOM_SEQUENCE_NAME;
params.setProperty(SEQUENCE, seqName);
}
super.configure(type, params, dialect);
}
}
Ensuite, le OracleDialect:
package com.foo;
import org.hibernate.dialect.Oracle10gDialect;
public class MyAppOracleDialect extends Oracle10gDialect {
public Class getNativeIdentifierGeneratorClass() {
return TableNameSequenceGenerator.class;
}
}
dernier, DataSource.groovy a besoin de connaître le dialecte:
dataSource {
pooled = true
driverClassName = "oracle.jdbc.OracleDriver"
// username, password....
dialect='com.foo.MyAppOracleDialect'
}
- 1. Grails contraintes par défaut
- 2. Comment remplacer l'emplacement par défaut pour le dossier .grails à partir de la ligne de commande?
- 3. Grails Echafaudage Date par défaut
- 4. séquence de bord par nom de sommet
- 5. Remplacer le thème Aero par défaut
- 6. Définition de l'ordre de tri par défaut dans Grails/GORM
- 7. Remplacer l'application de messagerie android par défaut
- 8. Django remplacer les fonctionnalités par défaut
- 9. Remplacer les couleurs par défaut de JComboBox
- 10. Remplacer le mappage de colonnes NHibernate par défaut
- 11. Propriété par défaut sans nom
- 12. problème dans Remplacer la fonction des touches par défaut
- 13. comment définir le nom par défaut et le nom de l'entreprise sur les commentaires dans Xcode?
- 14. HttpHandler utilisant l'espace de nom par défaut
- 15. svn: nom par défaut pour une balise quand le nom n'est pas important?
- 16. Comment remplacer le style par défaut d'un contrôle WPF?
- 17. Grails type par défaut des attributs de domaine "hasMany"
- 18. Désactiver grails Page de recherche par défaut du plugin interrogeable?
- 19. Comment définir une séquence comme valeur par défaut via pgAdmin?
- 20. "nom" web pdf pour mieux sauvegarder le nom de fichier par défaut dans Acrobat?
- 21. Comment remplacer la cible par défaut `make dist` de Qmake?
- 22. Comment remplacer la syntaxe par défaut en surbrillance dans vim?
- 23. remplacer id avec le nom dans collection_select
- 24. Comment remplacer l'opération de fermeture de fenêtre par défaut?
- 25. Comment modifier le paramètre par défaut d'un champ de domaine dans Grails pour qu'il soit NULL
- 26. Remplacer la tâche Nant par défaut par une autre
- 27. Django formulaire ne pas enregistrer le nom d'image par défaut
- 28. Vim: Remplacer la sélection par le tampon par défaut sans écraser le tampon
- 29. Est-il possible de remplacer le comportement par défaut de [Authorize] dans ASP.NET MVC?
- 30. Comment définir le nom par défaut à GtkComboBox?
Il me semble avoir eu succès en étendant org.hibernate.id.SequenceGenerator et le dialecte. –