JPA Buddy逆向工程未识别已手动映射实体问题求助
核心原因
运行时Hibernate会读取项目配置的PhysicalNamingStrategyStandardImpl规则(帕斯卡命名实体转小写表名),但JPA Buddy作为IDE插件,自身的命名策略配置可能未与项目同步,默认采用了蛇形命名转换(比如LikeThis→like_this),导致识别不到已有的实体映射。
可行解决方案
同步JPA Buddy的命名策略配置
打开IntelliJ的设置(File → Settings),找到JPA Buddy→Naming Strategies,将Physical Naming Strategy设置为org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl,和项目配置保持一致。这样JPA Buddy就会按照项目的命名规则匹配实体和表,无需手动添加@Table注解。确认配置文件的加载有效性
检查项目中是否存在优先级更高的配置文件(比如application.properties/application.yml),如果有,确保其中也配置了相同的命名策略:spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImplJPA Buddy可能优先读取这些高优先级配置,而非
default.properties。手动映射实体与表
在IntelliJ的Database工具窗口中,找到未被识别的数据库表,右键选择JPA Buddy→Sync Entities,在弹窗中指定对应的实体类,完成映射绑定。后续JPA Buddy就能自动识别该映射关系。检查实体包扫描路径
确认手动创建的实体类位于JPA Buddy默认扫描的包路径下。如果不在,可在JPA Buddy设置的Entity Locations中添加对应的包路径,确保插件能扫描到这些实体。
内容的提问来源于stack exchange,提问作者LukasG

