2009-08-10 11 views
0

私は、Customer、InternalCustomer、ExternalCustomer(適切な継承を持つ)などのエンティティのクラスをxmlスキーマから生成しました。これらのクラスのオブジェクトを永続化するためにJPAを使用したいと考えていますが、生成されているため注釈を付けることはできません。スキーマを変更して再生成するとアノテーションは消去されます。注釈やpersistence.xmlファイルを使わなくてもこれを行うことができますか?コード生成時にJPAをどのように活用できますか?

また、入力としてクラス(またはスキーマ)を提供し、DBを作成する(または私のために作成する)SQL文を与えるツールもあります。私はスキーマを持っているので、DBを作成するために必要なすべての情報がそこにあるはずです。私は、あなたは確かに、動的にクラスを生成し、このような状況でメタデータをJDOを使用することができるなど

おかげで事前に

答えて

2

を索引の作成について話して、またはDBのいずれかのチューニングが、ちょうど右のテーブルを作成しておりません、バイトコードエンハンスメント、ランタイム永続化をサポートし、クラスが生成され、拡張されたクラスローダーを使用します。 As per http://www.jpox.org/servlet/wiki/pages/viewpage.action?pageId=6619188

JPAにはこのようなメタデータAPIはありません。

--Andy(DataNucleusは)

+0

私は、これは私が右の句それをしなかった場合、私は尋ねたり気の毒れたものであるとは思いません。私はバイトコードでクラスを永続化したくありません。クラスのインスタンス(新しいInternalCustomer( "Name"、 "Address");)をデータベースにシリアル化してからデータベースにロードしたいと思います。しかし、ほとんどのJPA実装でそれを行うときは、InternalCustomerクラスに注釈を付けて、DBに直列化する方法のフレームワークを導く必要があります。もちろん、コードはスキーマから生成されるため、クラスに注釈を付けることはできません。 – fnCzar

+0

人々が理解できるようにコードを定義してみませんか?これらの3つの "生成された"クラスがありますが、@Blobとしてマークされたエンティティにフィールドがある場合は、そのうちの1つをシリアル化して永続化できる唯一の方法です。あなたはそれを持っていますか?それ以外の場合、私はあなたが何を望んでいるのか理解できません。とにかく答えるためにありがとう – DataNucleus

+0

。ここでもう答えが出るかどうかはわかりません。 – fnCzar

関連する問題