JPA中的@Column注释

时间:2012-12-28 05:12:58

标签: java jpa orm

我正在尝试持久化与数据库中的非现有表映射的实体。 实体类是

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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