Мне нужно сохранить имя таблицы Hibernate в файле Spring Boot application.properties, чтобы я мог изменить его без изменения кода. Мой код выглядит так:
@Data
@Entity
@Table(name = "myTable")
public class MySpecificTable{
@Id
private String someId;
}
@Repository
public interface MySpecificRepository extends JpaRepository<MySpecificTable, String> {
@Query(value = "SELECT * FROM myTable", nativeQuery = true)
List<MySpecificTable> getCustom();
}
Я нашел это сообщение , которое работает довольно хорошо, но если я реализую эту конфигурацию, я не смогу использовать другие методы репозитория по умолчанию (getAll, findById et c), потому что эта стратегия сопоставления не знает, как сопоставить имя таблицы с методами по умолчанию.
Есть ли способ извлечь "myTable" в application.properties, использовать методы репозитория по умолчанию и получить что-то вроде этого кода?
@Data
@Entity
@Table(name = "${table.name.from.properties}")
public class MySpecificTable{
@Id
private String someId;
}
@Repository
public interface MySpecificRepository extends JpaRepository<MySpecificTable, String> {
@Query(value = "SELECT * FROM " + getTableName() , nativeQuery = true)
List<MySpecificTable> getCustom();
}