[英]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.