Pie*_*nry 38 java spring jpa intellij-idea
我有一个Spring项目,用于在Intellij IDEA中设置的小型Web应用程序.
它在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>
Run Code Online (Sandbox Code Playgroud)
实际值从属性文件中读取,并在Spring运行时使用属性覆盖机制注入.
然后将数据源注入到同一应用程序上下文中的实体管理器工厂中:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="myDataSource"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
最后,实体管理器使用注释注入DAO:
/**
* Shared, thread-safe proxy for the actual transactional EntityManager
*/
@PersistenceContext
private EntityManager em;
Run Code Online (Sandbox Code Playgroud)
当我构建并部署到Tomcat时,一切正常,但Intellij的JPA验证似乎并不了解从何处获取数据源.
在我的实体中,表的名称和列的名称用红色下划线,验证消息是"无法解析表"或"无法解析列":
@Entity
@Table(name = "domain")
public class Domain extends AbstractAgendaEntity {
Run Code Online (Sandbox Code Playgroud)
在这个例子中,它"domain"是不被认为有效的部分.
我已经在"数据库"工具窗口中手动配置了我的数据库,我可以在控制台中看到我的表并执行SQL查询.
如何告诉Intellij使用此数据源来解析JPA实体的表名?
Pie*_*nry 110
我终于找到了如何做到这一点.
关键是"持久性"工具窗口.显然,在添加JPA构面后它可用,但它是一个单独的工具窗口.
要打开它:菜单"视图" - >工具窗口 - >持久性
在这个窗口中,你会看到你的应用程序使用不同的持久性相关元素(我看到persistence.xml,entityManagerFactory从Spring上下文,myUnit我不知道它来自哪里.
这将打开一个弹出对话框,其中包含一个小表,其中包含左列中的持久性元素和右列上分配给它的数据源.你可以从那里的"数据库"窗口中分配一个数据源,所以我选择了我为MySQL DB配置的数据源,并且验证错误消失了.
但是,如果我输入错误的表或列名称,我仍然会收到错误,这非常简洁.
cha*_*nes 12
首先,您必须将数据源添加到IDE中.您可以通常在右侧的"数据库"选项卡中执行此操作.您可以从代码中导入此数据源.您应该确保按下按钮刷新表.IDEA将加载表并将其用于验证.然后,您必须在JPA facet内部设置此数据源.
您需要做一些事情.首先,在Project Structure配置中配置Hibernate方面.您可以在此时选择Hibernate配置文件或创建一个新文件.然后,您应该在数据库窗口中配置数据源(视图 - >工具窗口 - >数据库).请记住在数据库窗口的"控制台"选项卡上设置数据库方言.最后,您需要转到Persistence窗口(View-> Tools Window-> Persistence)并将数据源添加到相应的facet.只需右键单击树中的右侧图标,然后选择"添加数据源"."数据源"列有一个下拉菜单,其中包含您已配置的所有数据源.IntelliJ然后正确识别表.
一句警告.从v12.04开始,IntelliJ不会修改您的Hibernate配置文件.您仍需要映射类并手动添加数据库详细信息.
| 归档时间: |
|
| 查看次数: |
34248 次 |
| 最近记录: |