在我的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>
答案 0 :(得分:2)
Java区分大小写。它是@Id
和@Column
。另外,这些是JPA注释,即它们不是Hibernate的一部分,而是Java EE的一部分(在javax.persistence
包中)。来自@PrimaryKey
包的相应Hibernate注释为@Column
和org.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实体管理器添加依赖项会传递给你解决,但我仍然建议添加你在工件中真正使用的依赖项。