Java 在对每个类使用Hibernate表时,如何防止为基类创建表?
我有两个类:基类和扩展基类的ExtendedClass。我希望使用Hibernate将ExtendedClass持久化为一个DB表,并且希望它也持久化基类中的所有字段 我想我想使用每类表范例,但是我不想Hibernate为基类创建DB表(我也不想向基类添加@Id)。有没有办法抑制这种情况 我正在做这样的事情:Java 在对每个类使用Hibernate表时,如何防止为基类创建表?,java,hibernate,Java,Hibernate,我有两个类:基类和扩展基类的ExtendedClass。我希望使用Hibernate将ExtendedClass持久化为一个DB表,并且希望它也持久化基类中的所有字段 我想我想使用每类表范例,但是我不想Hibernate为基类创建DB表(我也不想向基类添加@Id)。有没有办法抑制这种情况 我正在做这样的事情: @Entity class BaseClass { int value1; } @Entity @Table(name="extendedClasses") @Inheritance
@Entity
class BaseClass {
int value1;
}
@Entity
@Table(name="extendedClasses")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
class ExtendedClass extends BaseClass {
@Id long id;
int value2;
}
table extendedClasses
(
long id
int value1
int value2
)
我希望DB有一个这样的表:
@Entity
class BaseClass {
int value1;
}
@Entity
@Table(name="extendedClasses")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
class ExtendedClass extends BaseClass {
@Id long id;
int value2;
}
table extendedClasses
(
long id
int value1
int value2
)
尝试将基类标记为抽象类
@Entity
abstract class BaseClass {
int value1;
}
尝试将基类标记为抽象类
@Entity
abstract class BaseClass {
int value1;
}
要停止hibernate在DB中创建表,请将此添加到persistence.xml
<property name="hibernate.hbm2ddl.auto" value="validate" />
我不知道基类和子类的具体情况。要停止hibernate在DB中创建表,请将此添加到persistence.xml
<property name="hibernate.hbm2ddl.auto" value="validate" />
我不知道基类和子类的具体情况。如果在基类上放置
@Entity
,则必须定义一个id,该id将在数据库中生成一个表
将
@Entity
替换为@MappedSuperclass
将产生所需的结果。如果将@Entity
放在基类上,则必须定义一个id,该id将在数据库中生成一个表
将
@Entity
替换为@MappedSuperclass
会产生所需的结果。我想说的是不要将基类注释为一个实体。我试过了,但如果没有实体,基类字段将无法持久化。我也尝试过嵌入,但也不起作用。我想说的是,不要将基类注释为实体。我尝试过,但如果没有实体,基类字段将无法持久化。我也试过了,但也没用。谢谢。。。我读到这会有用,但不幸的是我需要在代码中实例化基类。谢谢。。。我读过这篇文章,但不幸的是,我需要在代码中实例化基类。谢谢,但如果没有@Entity注释,它将无法持久化基类字段。当我尝试添加这两个字段时,我得到“由引起:org.hibernate.AnnotationException:不能同时使用@Entity和@MappedSuperclass注释实体”是否有其他解决方案?谢谢,但是如果没有@Entity注释,它将无法持久化基类字段。当我尝试添加这两个字段时,我得到“原因:org.hibernate.AnnotationException:无法同时使用@Entity和@MappedSuperclass注释实体”是否有其他解决方案?谢谢,但是我确实希望它为ExtendedClass创建一个表谢谢,但是我确实希望它为ExtendedClass创建一个表