Hibernate符号@id @column无法识别

时间:2010-07-17 10:01:51

标签: java hibernate spring maven-2

在我的User类中,我正在尝试添加符号@id和@column。

我收到编译错误:

无法找到符号类ID /列。

我正在使用IDEA。

在文档中,我没有看到@Id和@Column的任何参考:http://docs.jboss.org/hibernate/stable/annotations/api/

我在我的pom.xml中有这个:

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.0.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.0.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.14</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>org.perf4j</groupId>
            <artifactId>perf4j</artifactId>
            <version>0.9.13</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>3.1rc2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-hibernate3</artifactId>
            <version>2.0.8</version>
        </dependency>
        <dependency>
            <groupId>hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.1beta4</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.1beta4</version>
        </dependency>


    </dependencies>

3 个答案:

答案 0 :(得分:2)

Java区分大小写。它是@Id@Column。另外,这些是JPA注释,即它们不是Hibernate的一部分,而是Java EE的一部分(在javax.persistence包中)。来自@PrimaryKey包的相应Hibernate注释为@Columnorg.hibernate.mapping

答案 1 :(得分:2)

如果要使用JPA 1.0实现,则需要以下依赖项:

<properties>
  <org.hibernate.version>3.4.0.GA</org.hibernate.version>
</properties>
<repositories>
  <repository>
    <id>repository.jboss.org-public</id>
    <name>JBoss Public Repository Group</name>
    <url>https://repository.jboss.org/nexus/content/groups/public</url>
  </repository>
</repositories>
<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>${org.hibernate.version}</version>
  </dependency>
  <!-- Hibernate uses slf4j for logging, we use log4j as backend -->
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.14</version>
  </dependency>
</dependencies>

如果您想使用JPA 2.0实现,只需将org.hibernate.version替换为:

<properties>
  <org.hibernate.version>3.5.3-Final</org.hibernate.version>
</properties>

在这两种情况下,上述Hibernate依赖关系都会为您提供传递所需的所有


您可能已经注意到,Hibernate使用SLF4J而Spring使用Jakarta Commons Logging。我建议将Spring配置为使用SLF4J以及此previous answer中的解释。

另见

答案 2 :(得分:0)

你需要的是java的持久性注释 您可以添加

的依赖项

javax.persistence:persistence-api

虽然向hibernate实体管理器添加依赖项会传递给你解决,但我仍然建议添加你在工件中真正使用的依赖项。