2017-08-04 2 views
1

私はJPAメタモデルジェネレータ機能が、カラム名が変わったときにバグを避けるのに本当に便利だと思っています。同様のメタモデルクラスを生成する任意のクラス(またはいくつかのパッケージ)を指すことができる汎用メタモデル生成ツールがあれば、本当にうれしいでしょう。そして、これは、物事が変更されたときではなく、実行時のものよりも、コンパイルエラーを作成するために使用することができます。古いクラスのメタモデルジェネレータ?

public class SomeClass { 
    public int somePublicProperty; 

    public String someStringMethod() { 
    .. 
    } 
} 

これは、のようなメタモデルクラスを作成します:

FieldAttributeとMethodAttributeがにとって有用な属性のようなメソッドを持ってい
public class SomeClass_ { 
    public static final FieldAttribute<SomeClass,Integer> somePublicProperty; 

    public static final MethodAttribute<SomeClass,String> somePublicMethod; 
} 

リバースコールをサポートします(つまり、裸の文字列を使用する必要性を取り除きます)。

Object someClassInstance = ... 
Integer value = SomeClass_.somePublicProperty.get(someClassInstance); 

// rather than 
Integer value = someClassInstance.getClass().getDeclaredField("somePublicProperty").get(someClassInstance); 

このようなものがありますか? Java 8では、メソッド参照を行うことができるようになりましたが、存在する場合は、メタモデルのようなものがほしいと思います。

+0

Eclipse Daliは、エンティティの編集中に、適切なJPAメタモデルクラスを動的に生成します。 –

+0

こんにちはブライアン - 私はダリを見て、それはJPAクラスのためだけにあるようです。私はJPA @Entitiesだけでなく、*どのクラスにも適用できる汎用メタモデルジェネレータの後にいます。 – fancyplants

+0

ああ - 私は明らかに十分に読んでいないようです。申し訳ありません。 –

答えて

1

私は、これが数回必要に持っていたし、私はこれを実装しました: あなたはMavenを使用している場合は、この

を使用しない方法を以下にhttps://github.com/mhagnumdw/bean-info-generator

、POMに追加します。 XML

<dependency> 
    <groupId>io.github.mhagnumdw</groupId> 
    <artifactId>bean-info-generator</artifactId> 
    <version>0.0.1</version> 
    <scope>compile</scope> 
</dependency> 

は@GenerateBeanMetaInfo

import io.github.mhagnumdw.beaninfogenerator.GenerateBeanMetaInfo; 
@GenerateBeanMetaInfo 
public class SomeClass { 
    private int someProperty; 
} 
01であなたのクラスに注釈を付けます

ビルドの実行は、SomeClass_INFO.javaとSomeClass_INFO.classは、あなたが生成し、この

Field field = SomeClass.class.getDeclaredField(SomeClass_INFO.someProperty.getName()); 

ような何かを行うことができます今すぐ

public abstract class SomeClass_INFO { 
    public static final BeanMetaInfo someProperty = new BeanMetaInfo("someProperty"); 
} 

を生成している場合* Eclipseの

での開発時に_INFO.java
  • プロジェクトを右クリック>プロパティ
  • Java Co mpiler>注釈処理>工場出荷時のパス
  • は、二つのjarファイルを追加します。豆-情報-発電-0.0.1.jarとjavapoet-1.9.0.jar

私はそれが役に立てば幸い!

+0

これはまさに私が探していたものに非常に近いですね、ありがとう! – fancyplants

関連する問題