背景:修改openmetadata,增加数据库表,使用注解Repository注册数据库表实体类,但是找不到。
java
@Repository(name = Entity.BDP_AUTH_TOKEN) // name 与实体类型匹配
public class BdpAuthTokenRepository extends EntityRepository<BdpAuthToken> {
public BdpAuthTokenRepository() {
super(
"bdp_auth_tokens",
Entity.BDP_AUTH_TOKEN,
BdpAuthToken.class,
Entity.getCollectionDAO().bdpAuthTokenDAO(),
"token",
"user_id"
);
}
//其它方法省略。。
}
}
排查启动时的错误日志有以下内容:
java.lang.NoSuchMethodException: org.openmetadata.service.jdbi3.BdpAuthTokenRepository.<init>(org.jdbi.v3.core.Jdbi)
at java.base/java.lang.Class.getConstructor0(Class.java:3761)
at java.base/java.lang.Class.getDeclaredConstructor(Class.java:2930)
at org.openmetadata.service.Entity.initializeRepositories(Entity.java:345)
at org.openmetadata.service.OpenMetadataApplication.run(OpenMetadataApplication.java:232)
at org.openmetadata.service.OpenMetadataApplication.run(OpenMetadataApplication.java:163)
at io.dropwizard.core.cli.EnvironmentCommand.run(EnvironmentCommand.java:66)
at io.dropwizard.core.cli.ConfiguredCommand.run(ConfiguredCommand.java:98)
at io.dropwizard.core.cli.Cli.run(Cli.java:78)
at io.dropwizard.core.Application.run(Application.java:94)
at org.openmetadata.service.OpenMetadataApplication.main(OpenMetadataApplication.java:934)
INFO [2025-12-29 10:09:28,053] [main] o.f.e.i.c.StandaloneProcessEngineConfiguration - Found 2 Engine Configurators in total:
解决:
错误日志提醒时构造参数有问题,最后修改super最后一个成员变量名即可。