Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 伯克利数据库中的变异错误_Java_Berkeley Db - Fatal编程技术网

Java 伯克利数据库中的变异错误

Java 伯克利数据库中的变异错误,java,berkeley-db,Java,Berkeley Db,我正在使用Berkely DB,我有一个错误,说突变缺失。这是什么意思 Exception: com.sleepycat.persist.evolve.IncompatibleClassException: Mutation is missing to evolve class: TopMoveDAO.TopMoveClass version: 0 Error: java.lang.ClassNotFoundException: TopMoveDAO.TopMoveClasscom.sleepy

我正在使用Berkely DB,我有一个错误,说突变缺失。这是什么意思

Exception: com.sleepycat.persist.evolve.IncompatibleClassException: Mutation is missing to evolve class: TopMoveDAO.TopMoveClass version: 0 Error: java.lang.ClassNotFoundException: TopMoveDAO.TopMoveClasscom.sleepycat.persist.evolve.IncompatibleClassException: Mutation is missing to evolve class: TopMoveDAO.TopMoveClass version: 0 Error: java.lang.ClassNotFoundException: TopMoveDAO.TopMoveClass
在com.sleepycat.persist.impl.PersistCatalog.PersistCatalog.java:365 位于com.sleepycat.persist.impl.Store.Store.java:180 在com.sleepycat.persist.EntityStore.EntityStore.java:165 在TopMoveDAO.TopMovePut.setupTopMovePut.java:40 在TopMoveDAO.TopMovePut.runTopMovePut.java:59 在TopMoveDAO.TopMovePut.mainTopMovePut.java:84

package TopMoveDAO;

import java.io.File;
import java.util.Timer;
import java.util.TimerTask;

import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.Environment;
import com.sleepycat.je.EnvironmentConfig;

import com.sleepycat.persist.EntityStore;
import com.sleepycat.persist.StoreConfig; 

public class TopMovePut {

    //private static File envHome = new File("C:/dev/je-3.3.75/");
 private static File envHome = new File("C:/dev/db/berkeley");


    private Environment envmnt;
    private EntityStore store;
    private TopMoveDA sda; 


//Next we create a method that simply opens our database environment and entity store for us.

   // The setup() method opens the environment and store
    // for us.
    public void setup()
        throws DatabaseException {

        EnvironmentConfig envConfig = new EnvironmentConfig();
        StoreConfig storeConfig = new StoreConfig();

        envConfig.setAllowCreate(true);
        storeConfig.setAllowCreate(true);

        // Open the environment and entity store
        envmnt = new Environment(envHome, envConfig);
       store = new EntityStore(envmnt, "EntityStore", storeConfig);
    } 

//We also need a method to close our environment and store.

    // Close our environment and store.
    public void shutdown()
        throws DatabaseException {

        store.close();
        envmnt.close();
    } 



//Populate the entity store
private void run()
    throws DatabaseException {

    setup();

    // Open the data accessor. This is used to store
    // persistent objects.
    sda = new TopMoveDA(store);

    // Instantiate and store some entity classes

    PriceElement pe1 = new PriceElement();

    pe1.setSecCode("UNO");
    pe1.setLastPrice(1);

    sda.pIdx.put(pe1);

    shutdown();
} 

//main
public static void main(String args[]) {
    //SimpleStorePut ssp = new SimpleStorePut();
    TopMovePut tmp = new TopMovePut();
    try {
        //ssp.run();
     tmp.run();
    } catch (DatabaseException dbe) {
        System.err.println("TopMovePut: " + dbe.toString());
        dbe.printStackTrace();
    } catch (Exception e) {
        System.out.println("Exception: " + e.toString());
        e.printStackTrace();
    }
    System.out.println("All done - TopMovePut.");
}

} 

您每次都必须删除现有数据库。

您必须编写一个变体来改进数据库。删除数据库并不能解决问题,只能绕过它,如果您还没有部署到生产环境中,这很好,但是如果您不想丢失现有数据,那么就编写一个变体

Berkley db会自动处理对持久实体的某些更改,例如添加字段。涉及删除数据或重命名字段的操作通常需要编写一个显式变体。当您开始使用突变时,您还必须使用突变将引用的版本号注释您的实体-即使突变是自动处理的,您也必须增加版本号。当您进行重大的结构更改(例如使用不同的主键)时,您必须进行整个存储转换

在复制环境中开发数据库时要小心。我强烈建议阅读以下内容:

链接:不可用。新的是