1

JDO と MySQL は初めてです。私のプロジェクトでは、すべてのエンティティをテーブルで自動的に変換する必要があります。

私はJDOの使用を開始し、次のようなプロパティを定義しました。

javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory


datanucleus.autoCreateSchema=true
datanucleus.validateTables=false
datanucleus.validateConstraints=false
datanucleus.query.sql.allowAll = true

javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL=jdbc:mysql://127.0.0.1:3306/db_name
javax.jdo.option.ConnectionUserName=user
javax.jdo.option.ConnectionPassword=123456
javax.jdo.option.Mapping=hsql

サンプル エンティティ:

@PersistenceCapable(identityType = IdentityType.APPLICATION, table = "heartbeat")
public class HeartBeat implements Serializable{
    @PrimaryKey
    @Column(length=128)
    private String userId;
.......
}

今、アプリケーションをコンパイルまたは実行すると、テーブルが自動作成されません。作成されたエンティティに基づくテーブルの自動作成に使用するプロパティがわかりません。

私は JDO と MySQL の統合に慣れていないので、私の質問にご容赦ください。

前もって感謝します。

4

1 に答える 1

0

JDO の場合、永続化プロセス中に「テーブル」のスキーマを作成する場合は、このプロパティdatanucleus.schema.autoCreateTablesを使用して DataNucleus に指示します。「列」を自動作成するにはdatanucleus.schema.autoCreateColumnsを使用し、「制約」にはdatanucleus.schema.autoCreateConstraintsを使用します。プロパティを true に設定します。

<property name="datanucleus.schema.autoCreateTables" value="true"/> <property name="datanucleus.schema.autoCreateColumns" value="true"/> <property name="datanucleus.schema.autoCreateConstraints" value="true"/>

3 つのショートカットは、datanucleus.schema.autoCreateAllを使用して true に設定します。

<!-- shortcut for the three --> <property name="datanucleus.schema.autoCreateAll" value="true"/>

ここでドキュメントを確認できますhttp://www.datanucleus.org/products/accessplatform_4_1/jdo/schema.html

JDO プロパティを次のように定義しました。

datanucleus.schema.autoCreateTables=true datanucleus.schema.autoCreateColumns=true datanucleus.schema.autoCreateConstraints=true

またはショートカット

datanucleus.schema.autoCreateAll=true

于 2017-12-22T13:43:24.180 に答える