У меня:
Код: Выделить всё
@Entity
@Data
@EqualsAndHashCode(callSuper = true)
public class AlertMessage extends BasicEntityAuto {
private String nickname;
private AlertType alertType;
...
@CreationTimestamp
@Temporary(TemporalType.TIMESTAMP)
private Date CreatedDate;
}
Код: Выделить всё
org.springframework.boot
spring-boot-starter-data-jpa
3.2.6
org.hibernate.orm
hibernate-core
7.0.0.Beta1
Код: Выделить всё
server.port=8108
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
spring.jpa.hibernate.naming.implicit-strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
spring.jpa.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.datasource.master.jdbcurl=jdbc:mariadb://127.0.0.1:3309/test
spring.datasource.master.username=root
spring.datasource.master.password=root
spring.datasource.master.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.slave1.jdbcurl=jdbc:mariadb://127.0.0.1:3310/test
spring.datasource.slave1.username=root
spring.datasource.slave1.password=root
spring.datasource.slave1.driver-class-name=org.mariadb.jdbc.Driver
Код: Выделить всё
services:
master:
restart: always
image: mariadb:latest
container_name: mariadb_master
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
MYSQL_USER: root
MYSQL_PASSWORD: root
volumes:
- ./master-data:/var/lib/mysql
- ./master-conf:/etc/mysql/conf.d
ports:
- "3309:3306"
command: >
--server-id=1
--log-bin=mysql-bin
--binlog-do-db=test
--binlog-format=ROW
slave:
restart: always
image: mariadb:latest
container_name: mariadb_slave
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./slave-data:/var/lib/mysql
- ./slave-conf:/etc/mysql/conf.d
- ./script:/scripts
ports:
- "3310:3306"
depends_on:
- master
command: >
--server-id=2
--relay-log=relay-bin
--log-bin=mysql-bin
--skip-slave-start=0
--scripts/script.sh`
Код: Выделить всё
java.sql.SQLSyntaxErrorException: (conn=151) Table 'test.AlertMessage' doesn't exist
каких настроек мне не хватает для преобразования CamelCase в Snake_case?
почему поиск осуществляется в таблице AlertMessage, а не в таблице alert_message?
каких настроек мне не хватает для преобразования CamelCase в Snake_case?
почему поиск осуществляется в таблице AlertMessage, а не в alert_message?
каких настроек мне не хватает для преобразования CamelCase в Snake_case?
почему поиск осуществляется в таблице AlertMessage, а не в alert_message?
каких настроек мне не хватает для преобразования CamelCase в Snake_case?
p>
указать @Table(name = "alert_message") нельзя. кроме того, я не хочу писать свой собственный класс преобразования (например: SnakeCaseNamingStrategy реализует PhysicalNamingStrategy).
эта проблема возникает с подчиненным устройством. потому что если я добавлю флаг --lower_case_table_names=1 в подчиненный докер в команде, то таблицы начнут искаться уже как 'test.alertmessage'.
а как еще указать имя конкретно для слейва?
если указать @Table(name="alert_message") или написать собственный конвертер, то все работает, но хотелось бы найдите более простой способ.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -principle