Hibernate - 表在删除期间不存在

时间:2016-02-07 02:39:23

标签: java mysql spring hibernate innodb

所以我试图从数据库中删除一个hibernate实体,但是它给了我一个错误,说该表不存在。找到实体并保存更改或创建新实体似乎没有任何问题 - 它只会在删除实体时抱怨。

此代码导致错误,表示该表格不存在。

class CustomCell: UITableViewCell {
    let myColors = [colorMyRed, colorMyBlue, colorMyGreen, colorMyYellow]

    var nextItemIndex = 0

    func color() -> UIColor {
        let result = myColors[nextItemIndex]
        nextItemIndex = nextItemIndex + 1
        return result
    }

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code

        // how can I assign a new color to this variable 
        // each time awakeFromNib is called
        let myColor:UIColor = color()

        // these labels need to be colored with one of the
        // four colors each time a new row is added  
        labelPrice.textColor = myColor
        labelDiscount.textColor = myColor
        labelSavings.textColor = myColor
    }
}

此代码将实体拉出数据库并打印ID而没有任何问题。

try
    {
        Transaction txn = s.beginTransaction();
        Resource r = (Resource) s.get(Resource.class, rid);
        s.delete(r);
        txn.commit();
    }

控制台输出

try
    {
        Transaction txn = s.beginTransaction();
        Resource r = (Resource) s.get(Resource.class, rid);
        System.out.println(r.getId());
        txn.commit();
    }

我不知道在添加新实体和更新现有实体时能够清楚地看到表格时会发生这种情况。谁能解释一下这里发生了什么?

由于

1 个答案:

答案 0 :(得分:0)

一种可能的解释是,您可能认为hibernate.hbm2ddl.auto设置为create。如果是这样,那么请更改它。

变化:

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

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

hibernate.cfg.xml文件中。

如果以上解决方案无效,请发布您的hibernate.cfg.xml文件。我们会深入挖掘您的代码。