Skip to content

Commit 14c1eb9

Browse files
committed
Make error message about needing a DS for a PU actionable
This is done by giving the exact configuration property that the user needs to set. Closes: #49159
1 parent b608294 commit 14c1eb9

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

extensions/hibernate-orm/deployment/src/main/java/io/quarkus/hibernate/orm/deployment/HibernateOrmProcessor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -989,10 +989,11 @@ private static void collectDialectConfig(String persistenceUnitName,
989989
Optional<String> dbKind = jdbcDataSource.map(JdbcDataSourceBuildItem::getDbKind);
990990
Optional<String> explicitDbMinVersion = jdbcDataSource.flatMap(JdbcDataSourceBuildItem::getDbVersion);
991991
if (multiTenancyStrategy != MultiTenancyStrategy.DATABASE && jdbcDataSource.isEmpty()) {
992+
String dsConfigProperty = HibernateOrmRuntimeConfig.puPropertyKey(persistenceUnitName, "datasource");
992993
throw new ConfigurationException(String.format(Locale.ROOT,
993-
"Datasource must be defined for persistence unit '%s'."
994+
"Datasource must be defined for persistence unit '%s'. Setting the datasource for the persistence unit can be done via the '%s' property. "
994995
+ " Refer to https://quarkus.io/guides/datasource for guidance.",
995-
persistenceUnitName),
996+
persistenceUnitName, dsConfigProperty),
996997
new HashSet<>(Arrays.asList("quarkus.datasource.db-kind", "quarkus.datasource.username",
997998
"quarkus.datasource.password", "quarkus.datasource.jdbc.url")));
998999
}

extensions/hibernate-orm/deployment/src/test/java/io/quarkus/hibernate/orm/config/datasource/EntitiesInNamedPUWithoutDatasourceTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ public class EntitiesInNamedPUWithoutDatasourceTest {
2323
.overrideConfigKey("quarkus.hibernate-orm.pu-1.schema-management.strategy", "drop-and-create")
2424
.assertException(t -> assertThat(t)
2525
.isInstanceOf(ConfigurationException.class)
26-
.hasMessageContainingAll("Datasource must be defined for persistence unit 'pu-1'."));;
26+
.hasMessageContainingAll("Datasource must be defined for persistence unit 'pu-1'.")
27+
.hasMessageContainingAll("'quarkus.hibernate-orm.\"pu-1\".datasource'"));
2728

2829
@Test
2930
public void testInvalidConfiguration() {

0 commit comments

Comments
 (0)