我有一个在 Intellij IDEA 中设置的小型 Web 应用程序的 Spring 项目。
它在 Hibernate 之上使用 JPA 作为持久层。数据源(MySQL)在 Spring 应用程序上下文中定义:
<!-- Values are configured via the property override -->
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value=""/>
<property name="url" value=""/>
<property name="username" value=""/>
<property name="password" value=""/>
</bean>
实际值从属性文件中读取,并在运行时由 Spring 使用属性覆盖机制注入。
然后将数据源注入到同一应用程序上下文中的实体管理器工厂:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="myDataSource"/>
</bean>
最后,实体管理器使用注解注入 DAO:
/**
* Shared, thread-safe proxy for the actual transactional EntityManager
*/
@PersistenceContext
private EntityManager em;
当我构建并将其部署到 Tomcat 时一切正常,但 Intellij 的 JPA 验证似乎不了解从何处获取数据源。
在我的实体中,表的名称和列的名称带有红色下划线,验证消息是“无法解析表”或“无法解析列”:
@Entity
@Table(name = "domain")
public class Domain extends AbstractAgendaEntity {
在此示例中,它"domain"
是无效的部分。
我已经在“数据库”工具窗口中手动配置了我的数据库,我可以在控制台中查看我的表并执行 SQL 查询。
如何告诉 Intellij 使用此数据源来解析我的 JPA 实体的表名?