Il génère des tables MyISAM par défaut. Je ne veux pas avoir à générer un script DDL et à le modifier si je peux l'éviter. Je voudrais également éviter de changer le type de table par défaut de mon installation MySQL à moins que je puisse le faire pour une base de données en ligne. Des idées?Comment puis-je obtenir EclipseLink pour créer des tables MySQL InnoDB?
Répondre
Impossible de voir autrement que de modifier les scripts ou de définir le type par défaut dans MySQL.
Il y a un bug connecté pour cela, s'il vous plaît voter pour elle,
https://bugs.eclipse.org/bugs/show_bug.cgi?id=214519
EclipseLink pris en charge par la création de tableaux avec Postfix tels que moteur = InnoDB dans son TableDefinition setCreationSuffix(), mais ne prend pas en charge n'importe quel moyen de générer ceci, et ne fournit pas un événement ou un hook de plate-forme pour la génération de table par défaut (ce qui serait très utile).
Vous pouvez utiliser EclipseLink DefaultTableGenerator vous-même pour générer vos tables vous-même dans un SessionCustomizer. Vous appelez generateDefaultTableCreator(), puis bouclez sa TableDefitions, ajoutez le suffixe InnoDB, puis dites-lui de créer les tables. Toutes les classes se trouvent dans le package org.eclipse.persistence.tools.schemaframework.
soutien a été ajouté à cet effet dans EclipseLink 2.2,
J'ai essayé d'ajouter les propriétés mais la sortie DDL ne contient pas l'instruction 'engine = InnoDB'. Est-ce que cela fonctionne avec vous? – Stefan
En EclipseLink 2.4:
eclipselink.ddl.default-table-suffix
fonctionne pas.
v2.4 vous devez utiliser:
eclipselink.ddl-generation.table-creation-suffix
Merci pour l'info. Je suis allé avec le changement de type de table par défaut MySQL pour le moment. J'ai voté pour ce bug. –