Dlaczego chcesz używać MyISAM??? Nie obsługuje kluczy obcych ani transakcji. I rzadko jest szybszy niż InnoDB, ponieważ InnoDB używa blokad wierszy i MVCC, w przeciwieństwie do blokad pełnej tabeli MyISAM.
Powiedziawszy to, możesz sprawić, że to zadziała. Musisz używać nowszej wersji MySQL, ponieważ type
atrybut był przestarzały przez jakiś czas i nie jest teraz obsługiwany - musisz użyć ENGINE
zamiast. Nie ma dialektu obsługującego to (zauważ, że org.hibernate.dialect.MySQL5InnoDBDialect
robi właściwą rzecz dla InnoDB), więc musisz stworzyć własny.
Utwórz tę klasę w src/groovy lub src/java (zmień nazwę pakietu i/lub klasy):
package com.mycompany.myapp
import org.hibernate.dialect.MySQLMyISAMDialect
class MySQL5MyISAMDialect extends MySQLMyISAMDialect {
String getTableTypeString() {
" ENGINE=MyISAM"
}
}
i odnieś się do niego w DataSource.groovy, jak pokazałeś w swoim pytaniu:
dialect = com.mycompany.myapp.MySQL5MyISAMDialect