我正在尝试持久化与数据库中的非现有表映射的实体。 实体类是
@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
,则该实体会被持久化。如果你能告诉我背后的原因,那将是一个很大的帮助。提前谢谢。
答案 0 :(得分:0)
您是否首先尝试了没有unique
注释,然后尝试使用unique = true条件保留Account
对象。
如果是,那么原因可能是正确的,因为它无法更新就地模式以将约束修改为Unique=true
。
如果您正在使用休眠,请尝试:
<property name="hibernate.hbm2ddl.auto">update</property>
如果模式不存在,它将创建模式,并尝试修改现有模式以匹配您定义的映射。