|
1 | 1 | package de.varilx.database.sql.configuration; |
2 | 2 |
|
| 3 | +import de.varilx.database.Service; |
3 | 4 | import jakarta.persistence.Entity; |
4 | 5 | import lombok.AccessLevel; |
5 | 6 | import lombok.AllArgsConstructor; |
6 | 7 | import lombok.experimental.FieldDefaults; |
7 | 8 | import org.hibernate.cfg.Configuration; |
| 9 | +import org.jetbrains.annotations.Nullable; |
8 | 10 | import org.reflections.Reflections; |
9 | 11 |
|
10 | 12 | import java.util.logging.Level; |
|
14 | 16 | @FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true) |
15 | 17 | public class HibernateConfiguration { |
16 | 18 |
|
| 19 | + @Nullable |
17 | 20 | String connectionUri, userName, password; |
18 | 21 |
|
19 | | - public Configuration toHibernateConfig(ClassLoader loader) { |
| 22 | + public Configuration toHibernateConfig(ClassLoader loader, Service.ServiceType type) { |
20 | 23 | Configuration configuration = new Configuration(); |
21 | 24 |
|
22 | | - configuration.setProperty("hibernate.connection.driver_class", "com.mysql.cj.jdbc.Driver"); |
23 | | - configuration.setProperty("hibernate.connection.url", connectionUri); |
24 | | - configuration.setProperty("hibernate.connection.username", userName); |
25 | | - configuration.setProperty("hibernate.connection.password", password); |
26 | 25 |
|
27 | | - configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); |
| 26 | + switch (type) { |
| 27 | + case MYSQL -> { |
| 28 | + configuration.setProperty("hibernate.connection.driver_class", "com.mysql.cj.jdbc.Driver"); |
| 29 | + configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); |
| 30 | + configuration.setProperty("hibernate.connection.url", connectionUri); |
| 31 | + configuration.setProperty("hibernate.connection.username", userName); |
| 32 | + configuration.setProperty("hibernate.connection.password", password); |
| 33 | + } |
| 34 | + case SQLITE -> { |
| 35 | + configuration.setProperty("hibernate.connection.driver_class", "org.sqlite.JDBC"); |
| 36 | + configuration.setProperty("hibernate.dialect", "org.hibernate.community.dialect.SQLiteDialect"); |
| 37 | + configuration.setProperty("hibernate.connection.url", connectionUri); |
| 38 | + configuration.setProperty("hibernate.connection.username", ""); |
| 39 | + configuration.setProperty("hibernate.connection.password", ""); |
| 40 | + } |
| 41 | + } |
| 42 | + |
28 | 43 | configuration.setProperty("hibernate.hbm2ddl.auto", "update"); |
29 | 44 | configuration.setProperty("spring.jpa.hibernate.ddl-auto", "auto"); |
30 | 45 |
|
|
0 commit comments