持久化实体时使用playOrm 1.4.1的空指针

持久化实体时使用playOrm 1.4.1的空指针,orm,nosql,playorm,Orm,Nosql,Playorm,我已经在playORM中映射了实体,我的项目运行良好,我的实体映射方式与它们相同。然而,在安装了PlayOrm1.4.1(maven发布的最新版本)之后,我得到了下面的空指针 我想找到错误,但不知道从哪里开始查找 有什么提示吗 信息:在本地找到meta=User 2012-11-09 17:32:22918 com.alvazan.orm.layer9z.spi.db.cassandra.ColumnFamilyHelper WaitForNodesToBeUpdate 信息:循环,直到所有节点

我已经在playORM中映射了实体,我的项目运行良好,我的实体映射方式与它们相同。然而,在安装了PlayOrm1.4.1(maven发布的最新版本)之后,我得到了下面的空指针

我想找到错误,但不知道从哪里开始查找

有什么提示吗

信息:在本地找到meta=User 2012-11-09 17:32:22918 com.alvazan.orm.layer9z.spi.db.cassandra.ColumnFamilyHelper WaitForNodesToBeUpdate 信息:循环,直到所有节点在300000毫秒内具有相同的架构版本或超时 2012-11-09 17:32:22939 com.alvazan.orm.layer9z.spi.db.cassandra.ColumnFamily帮助尝试加载ColumnFamilyImpl 信息:我们没有在cassandra中找到任何要加载的列family=User(来自virt=User) 2012-11-09 17:32:22939 com.alvazan.orm.layer9z.spi.db.cassandra.ColumnFamilyHelper tryToLoadColumnFamilyVirt 信息:从cassandra加载柱族图元的总时间=21 java.lang.NullPointerException 位于com.alvazan.orm.impl.meta.data.MetaEmbeddedSimple.translateToColumnImpl(MetaEmbeddedSimple.java:105) 位于com.alvazan.orm.impl.meta.data.MetaEmbeddedSimple.translateToColumn(MetaEmbeddedSimple.java:93) 位于com.alvazan.orm.impl.meta.data.MetaClassSingle.translateToRow(MetaClassSingle.java:82) 位于com.alvazan.orm.layer0.base.BaseEntityManagerImpl.putImpl(BaseEntityManagerImpl.java:102) 位于com.alvazan.orm.layer0.base.BaseEntityManagerImpl.put(BaseEntityManagerImpl.java:68) 位于com.s1mbi0se.dmp.da.dao.UserDao.insertOrUpdateUser(UserDao.java:23) 位于com.s1mbi0se.dmp.module.UserModule.persistData(UserModule.java:116) 位于com.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce(SelectorReducer.java:60) 在com.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce上(SelectorReducer.java:1) 位于org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:176) 位于org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649) 位于org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:417) 位于org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:260) 17:32:22946警告线程-3映射。本地JobRunner:298-作业\u本地\u 0001 java.lang.InterruptedException 在com.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce上(SelectorReducer.java:63) 在com.s1mbi0se.dmp.processor.mapred.SelectorReducer.reduce上(SelectorReducer.java:1) 位于org.apache.hadoop.mapreduce.Reducer.run(Reducer.java:176) 位于org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649) 位于org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:417) 位于org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:260)
2012-11-09 17:32:27237 com.s1mbi0se.dmp.processor.main.DmpProcessorRunner运行

编辑:这在主分支中已修复,即将发布。2012年11月27日

日志格式似乎有点错误,但这是重要的部分

java.lang.NullPointerException at com.alvazan.orm.impl.meta.data.MetaEmbeddedSimple.translateToColumnImpl(MetaEmbeddedSimple.java:105)
第105行找到此代码

    for(T val : toBeAdded) {
        byte[] name = formTheName(val);
        Column c = new Column();
        c.setName(name);

        row.getColumns().add(c);
    }
具体来说,第105行是第一行,所以tobeaded由于某种原因是空的……看看是谁调用了这个方法

嗯,事实证明你的一个实体有一个空的东西列表。我们需要在这里添加代码,所以如果您的实体有一个空列表,我们将创建一个空列表。你能提交一张票证并链接到这个URL吗。我们可以很容易地解决这个问题

注意:我习惯于每个实体都有这样一个字段

私人物品清单

我总是这样定义它

private List something=new ArrayList()

这避免了到处都是空指针,这就是我错过这一个的原因:(:(…)无论如何,我们将修复允许这个空列表

谢谢,
Dean

编辑:这已在master branch中修复,即将发布。2012年11月27日

日志格式似乎有点错误,但这是重要的部分

java.lang.NullPointerException at com.alvazan.orm.impl.meta.data.MetaEmbeddedSimple.translateToColumnImpl(MetaEmbeddedSimple.java:105)
第105行找到此代码

    for(T val : toBeAdded) {
        byte[] name = formTheName(val);
        Column c = new Column();
        c.setName(name);

        row.getColumns().add(c);
    }
具体来说,第105行是第一行,所以tobeaded由于某种原因是空的……看看是谁调用了这个方法

嗯,原来你的一个实体有一个空列表。我们需要在这里添加代码,这样如果你的实体有一个空列表,我们就会创建一个空列表。你能提交一个票证并链接到这个URL吗?我们可以很容易地修复这个

注意:我习惯于每个实体都有这样一个字段

私人物品清单

我总是这样定义它

private List something=new ArrayList()

这避免了到处都是空指针,这就是我错过这一个的原因:(:(…)无论如何,我们将修复允许这个空列表

谢谢,
Dean

这在Maven repo中提供的1.4.2版中固定

这在Maven repo中提供的1.4.2版中固定