2011-09-17 14 views
2

私は、EJBプロジェクトで定義された継承戦略TABLE_PER_CLASSを持つスーパーエンティティクラスを持っています。私は単体テストのためにEJB3Unitを使用しようとしましたが、継承ストラテジTABLE_PER_CLASSはまだEJB3Unitではサポートされていません。そこにそれをサポートする他のテストライブラリがありますか?私はGoogleにしようとしたが、何も来なかった...継承ストラテジTABLE_PER_CLASSをサポートする任意のEJBユニットテストライブラリ?

Testsuite: entity.DepartmentTest 
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec 

------------- Standard Error ----------------- 
SLF4J: Class path contains multiple SLF4J bindings. 
SLF4J: Found binding in [jar:file:/Applications/NetBeans/glassfish-3.1.1/glassfish/modules/weld-osgi-bundle.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: Found binding in [jar:file:/Applications/NetBeans/glassfish-3.1.1/glassfish/modules/bean-validator.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
SLF4J: The requested version 1.5.10 by your slf4j binding is not compatible with [1.6] 
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details. 
------------- ---------------- --------------- 
Null Test: Caused an ERROR 
null 
null 
java.lang.ExceptionInInitializerError 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:169) 
Caused by: java.lang.RuntimeException: Inheritance strategy TABLE_PER_CLASS not (yet) supported. 
    at com.bm.introspectors.EntityBeanIntrospector.processInheritance(EntityBeanIntrospector.java:475) 
    at com.bm.introspectors.EntityBeanIntrospector.processAnnotations(EntityBeanIntrospector.java:160) 
    at com.bm.introspectors.EntityBeanIntrospector.getEntityBeanIntrospector(EntityBeanIntrospector.java:90) 
    at com.bm.introspectors.relations.RelationPropertyResolver.findAttributeForRelationAtOtherSide(RelationPropertyResolver.java:67) 
    at com.bm.introspectors.AbstractPersistentClassIntrospector.processNonIdAnnotations(AbstractPersistentClassIntrospector.java:373) 
    at com.bm.introspectors.AbstractPersistentClassIntrospector.processAnnotations(AbstractPersistentClassIntrospector.java:254) 
    at com.bm.introspectors.AbstractPersistentClassIntrospector.processAccessTypeField(AbstractPersistentClassIntrospector.java:91) 
    at com.bm.introspectors.EntityBeanIntrospector.processAccessTypeField(EntityBeanIntrospector.java:177) 
    at com.bm.introspectors.EntityBeanIntrospector.processAnnotations(EntityBeanIntrospector.java:154) 
    at com.bm.introspectors.EntityBeanIntrospector.getEntityBeanIntrospector(EntityBeanIntrospector.java:90) 
    at com.bm.datagen.relation.BeanCollectionGenerator.<init>(BeanCollectionGenerator.java:94) 
    at entity.DepartmentTest$MyEmoloyeeCreator.<init>(DepartmentTest.java:30) 
    at entity.DepartmentTest$MyEmoloyeeCreator.<init>(DepartmentTest.java:27) 
    at entity.DepartmentTest.<clinit>(DepartmentTest.java:19) 


Test entity.DepartmentTest FAILED 
test: 
Deleting: /var/folders/xb/xbJfmQ0UGrCP0lmSoZFT4E+++TI/-Tmp-/TEST-entity.DepartmentTest.xml 
BUILD SUCCESSFUL (total time: 8 seconds) 

答えて

1

多分OpenEJBをチェックアウトする。ここにはexample that uses JPAがあります。私はそれがあなたの正確なシナリオをカバーしているのかどうかはわかりませんが、十分に近いはずです。

download pageにはzipファイルの例がありますが、そのような例は約2ダースあります。これらはすべて単体テストであり、MDB、Webサービス、トランザクション、セキュリティ、JPA、データソースなどの基本的なものを含むEJB APIのほぼすべてをカバーします。

0

これまで通りです。あなたは確認する必要があります:

Table per Class inheritance in EJB3 Entities on docs.jboss.org

コードサンプル:

@Entity 
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) 
public class Pet implements java.io.Serializable 
{ 

... 

} 

私は助けを願っています。

関連する問題