001package chu77.eldependenci.sql;
002
003import org.hibernate.dialect.Dialect;
004import org.springframework.data.jpa.repository.JpaRepository;
005
006import javax.sql.DataSource;
007
008/**
009 * SQL 安裝器
010 */
011public interface SQLInstallation {
012
013    /**
014     * 綁定 hibernate 的 entities
015     * @param entities table class
016     */
017    void bindEntities(Class<?>... entities);
018
019    /**
020     * 綁定 spring data jpa repository 的 自定義實例類
021     * @param repository jpa repository 類
022     * @param customImplements 自定義實例類
023     */
024    void bindJpaRepository(Class<? extends JpaRepository<?,?>> repository, Class<?>... customImplements);
025
026    /**
027     * 設置自定義的 DataSource (數據源)
028     * @param dataSource 自定義的 DataSource
029     * @param dialect 數據源的類型
030     */
031    void injectDataSource(DataSource dataSource, Class<? extends Dialect> dialect);
032
033}