繁体   English   中英

休眠符号@id @column无法识别

[英]Hibernate symbols @id @column are not recognized

在我的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>

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

如果要使用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,如上一个答案中所述

也可以看看

您需要的是java的持久性注释。

javax.persistence:persistence-api

尽管将依赖项添加到休眠实体管理器可以暂时解决您的问题,但我仍然建议您添加在工件中实际使用的依赖项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM