发生以下错误
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException:Export identifier [order_signal] encountered more than once
我有以下课程:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class TransactionComponent {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "id", updatable = false, nullable = false)
protected Long id;
...
}
@Entity
@JsonRootName("OrderSignalDAO")
public class OrderSignal extends TransactionComponent {
...
}
@Entity(name = "TransferSignal")
public class TransferSignal extends TransactionComponent {
....
}
在OrderSignal类中,没有其他@Id,并且在TransactionComponent中也没有id的getter / setter。
为什么会出现此错误?这是什么意思?如何解决?
答案 0 :(得分:1)
我使用IntelliJ进行开发,而在我的“out”目录中则是旧的.class文件。一些java类已经被删除,但不知何故不在“out”目录中。
作为解决方案,我删除了整个“out”目录。
答案 1 :(得分:1)
我遇到上述问题的一种情况是,实体类如下所示
`@Entity
@Table(name = "universe")
public class Universe {
@GenericGenerator(
name = "universeSequenceGenerator",
strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
parameters = {
@Parameter(name = "sequence_name", value = "universe"),
@Parameter(name = "initial_value", value = "1"),
@Parameter(name = "increment_size", value = "1")
}
)
@Id
@GeneratedValue(generator = "universeSequenceGenerator")
private Integer id;
private String name;
....`
在上述情况下,将引发以下错误:org.hibernate.tool.schema.spi.SchemaManagementException:Export identifier [universe] encountered more than once
这是因为@Parameter(name = "sequence_name", value = "universe")
,当我们将其更改为@Parameter(name = "sequence_name", value = "universeSeq")
时,错误消失了。如果实体名称与参数名称中的任何地方匹配,等等。那么这可能会发生。