Java @JPA中的列注释

Java @JPA中的列注释,java,jpa,orm,Java,Jpa,Orm,我正在尝试持久化一个与数据库中不存在的表映射的实体。 实体类是 @Entity @Table(name = "NEWTABLE") public class Account { @Id @Column(unique=true) private int accountNo; private String customerName; // Respective Getters and Setters 数据库中不存在NEW

我正在尝试持久化一个与数据库中不存在的表映射的实体。 实体类是

 @Entity
 @Table(name = "NEWTABLE")
 public class Account {
       @Id
       @Column(unique=true)
       private int accountNo;
       private String customerName;

       // Respective Getters and Setters
数据库中不存在
NEWTABLE
。当我试图持久化此实体时,会出现以下错误:

Internal Exception: java.sql.SQLException: ORA-00942: table or view does not exist

但是如果我删除
@列
注释中的
unique=true
,实体将被持久化。如果你能告诉我这背后的原因,那将是一个很大的帮助。提前感谢。

您是否先尝试不使用
unique
注释,然后尝试使用unique=true条件保留
帐户
对象

如果是,那么原因可能是真的,因为它无法更新就地架构以将约束修改为
Unique=true

如果您正在使用hibernate,请尝试:

<property name="hibernate.hbm2ddl.auto">update</property>
更新

如果一个模式不存在,它将创建一个模式,并尝试修改现有表以匹配您定义的映射。

如果表不存在,则如何将帐户对象持久化到数据库中您已经说明了原因:
数据库中不存在“NEWTABLE”。
但是如果我们删除unique=true,即使新表不在数据库中,它也会保持不变。(在persistence.xml中,如果我们将ddl生成指定为create tables,那么它将创建数据库中不存在的表)@Dheepan在哪里持久化,因为表不存在?@Matteo:它正在持久化表名为“NEWTABLE”的数据。我第一次尝试使用unique约束。只有在没有唯一约束的情况下才能工作。甚至它也接受其他属性的唯一约束。仅当我对主键属性使用唯一约束时,它会给出错误。默认情况下,主键具有唯一约束。您不需要显式地定义它们。也许,这就是原因。此外,您还可以尝试使用hibernate在持久化实体时生成的“sql”进行调试