1

我在尝试遵循DataNucleus HBase 教程时遇到异常(“必须指定名为 javax.jdo.PersistenceManagerFactoryClass 的属性”) 。

我的 datanucleus.properties 文件(如下)没有指定这样的属性,但是教程也没有,DataNucleus HBase 示例也没有。

找到 3.1 样本后编辑:

src/main/resources/datanucleus.properties

javax.jdo.option.ConnectionURL=hbase:hx1:60010
javax.jdo.option.Mapping=hbase

datanucleus.metadata.validate=false
datanucleus.autoCreateSchema=true
datanucleus.validateTables=false
datanucleus.validateConstraints=false

src/main/java/hbase-site.xml

<?xml version="1.0"?>

<configuration> 
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hx1:2181</value>
    <description>The host and port that the HBase master runs at.
    </description>
  </property>
</configuration>

src/main/com.business.model/package-hbase.xml

<?xml version="1.0"?>
<!DOCTYPE orm PUBLIC 
    "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN" 
    "http://java.sun.com/dtd/orm_2_0.dtd">
<orm>
    <package name="com.business.model">
        <class name="Recommendation" table="Recommendations">
            <field name="id" column="ID"/>
            <field name="documents" column="DOCUMENTS"/>
        </class>

        <class name="Document">
            <field name="id" column="ID"/>
            <field name="title" column="TITLE"/>
        </class>
    </package>
</orm>

有什么我想念的想法吗?在与 JPA 合作了几年之后,我是 JDO 的新手。

4

1 回答 1

6

我从未尝试过 HBase 教程,但您必须定义 javax.jdo.PersistenceManagerFactoryClass 属性。我的在 persistence.xml 文件(src/main/resources)中定义。属性定义:

<property name="javax.jdo.PersistenceManagerFactoryClass"
            value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory" />

您也可以在创建 PMF 时定义此属性。

更多细节在:http ://db.apache.org/jdo/pmf.html

于 2012-09-26T12:24:52.377 回答