1

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

 @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中的@Column,实体就会被持久化。如果你能告诉我这背后的原因,那将是一个很大的帮助。提前致谢。

4

1 回答 1

0

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

如果是,那么原因可能是正确的,因为它无法更新就地模式以将约束修改为Unique=true.

如果您使用的是休眠,请尝试:

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

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

于 2012-12-28T05:28:46.277 回答