如何在休眠状态下使用类org.hibernate.annotations.Table的@Table注释

时间:2018-10-15 10:44:08

标签: java xml spring hibernate annotations

我的班级名字是

  

批处理工作

我的表名是

  

batch_jobs

我正在使用org.hibernate.annotations.Table类的@Table而不是javax.persistence

我的BatchJob类的代码是

import javax.persistence.Entity;
import org.hibernate.annotations.Table;


@Entity
@Table(appliesTo="batch_jobs")
public class BatchJob {

我遇到错误

  

org.hibernate.AnnotationException:@ org.hibernate.annotations.Table   引用了一个未知的表:batch_jobs

当我将@Entity表示法的类更改为org.hibernate.annotations

import org.hibernate.annotations.Entity;
import org.hibernate.annotations.Table;


@Entity
@Table(appliesTo="batch_jobs")
public class BatchJob {

我遇到错误

  

org.hibernate.hql.internal.ast.QuerySyntaxException:BatchJob不是   映射[来自BatchJob]

我的查询

allBatchJobs=session.createQuery("From BatchJob").list();

我的hibernate.cfg.xml映射

<mapping class="com.company.bmdashboard.beans.BatchJob"></mapping>

当我将类名更改为batch_jobs时,代码可以正常工作,但我想使用名称BatchJob,而又不想使用javax.persistence类。

请指导我。预先感谢

3 个答案:

答案 0 :(得分:0)

尝试一下。...

import javax.persistence.Entity;
import org.hibernate.annotations.Table;

@Entity
@Table(name="batch_jobs")
public class BatchJob {

答案 1 :(得分:0)

请使用如下所示的javax.persistence包

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

答案 2 :(得分:0)

@org.hibernate.annotations.Table使用javax.persistence.Table;和/或javax.persistence.SecondaryTables;中的值。例如:

@Table(name = "batch_jobs")
@SecondaryTables({
        @SecondaryTable(name="batch")
})
@Entity
@org.hibernate.annotations.Table(inverse = true, appliesTo = "batch")
public class BatchJob {

因此,@org.hibernate.annotations.Table不等于javax.persistence.Table;,这是具有不同用途的不同注释。