我正在使用Spring框架開發一個web應用程序,並使用Hibernate來支持持久層。我已經知道我可以用下面的代碼定製我自己的方言:Java中不同的MySQL引擎彈簧
public class MySQL5Dialect extends MySQL5InnoDBDialect {
@Override
public String getTableTypeString() {
return " ENGINE=InnoDB DEFAULT CHARSET=utf8";
}
}
但是,這適用於所有表格。現在我有不同的MySQL存儲引擎的表。例如,一個表格使用InnoDB
,另一個表格使用MyISAM
。我該如何做到這一點?提前致謝。
使用hibernate的主要好處是您的數據庫詳細信息對開發人員是隱藏的 - 這使得它可能更容易在數據庫供應商或版本之間遷移。如果你深入到數據庫中,可能需要考慮使用其他技術來設置表格(如flyway),然後將你的休眠映射到(手動)創建的表格上? – Jan
@Jan謝謝。但如果我不想手動使用本地SQL創建表,並且我的數據庫絕對是MySQL。沒有辦法用不同的引擎創建表格嗎? –
除了InnoDB以外,沒有什麼好的理由來創建任何新表。 (如果您認爲存在,我們可以討論。) –