У меня есть проект Spring для небольшого веб-приложения, настроенного в Intellij IDEA.
Он использует JPA поверх Hibernate для слоя persistence. Источник данных (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 с использованием механизма переопределения свойств.
И затем источник данных вводится в диспетчер сущностей factory в том же контексте приложения:
<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?