我在src / test / java中创建了一个仅用于测试的实体。看来IntelliJ IDEA并没有认识到它。当我试图写一个查询时,Intellij并没有将该类视为一个实体,我无法写出" select * from" - 它标志着该类不存在。
我已经尝试直接在persistence.xml中映射该类,但是它也不起作用(IntlliJ仍然无法识别它,并且在persistence.xml中我必须将其标记为纯文本或IntelliJ也会将其标记为错误。)
此外,在我在src / main中的所有实体中,我可以看到它映射的符号:
然而,src / test中的那个不是:
编辑:
我使用的是JPA facet,而不是Hibernate(需要hibernate.cfg.xml
而不是persistence.xml
),并且只允许添加一个persistence.xml
文件
答案 0 :(得分:1)
要识别,您需要为scr/test
文件夹设置IDEA Facets。转到Project Structure -> Facets
并在Descriptions
设置路径persistence.xml
:
但是你不需要创建实体进行测试。您应该为存储在src/main/java/...
文件夹中的实体创建测试用例。
答案 1 :(得分:0)
想出来并回答后代:
正如@ dozortsev-anton所提到的,我们需要src/test/resources
中的另一个xml文件 - 但不是另一个具有不同持久性单元的persistence.xml
,我们需要一个实际的orm.xml
来映射实体:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
version="2.0">
<entity class="my.wonderful.class">
<table name="TABLE_NAME" />
</entity>
</entity-mappings>
请注意,只需编写<entity>
节点(内部没有table
元素)就足以让IntelliJ IDEA将类识别为实体并开始自动完成使用此类的查询。但是,列名称将无法识别:
(在你徘徊时,你会得到&#34;无法解决列......&#34;错误)。
table
元素将解决此问题 - 通过将实体映射到表(与@Table
注释中的表相同),所有错误都将消失。