Любая библиотека модульных тестов EJB, которая поддерживает стратегию наследования TABLE_PER_CLASS? - PullRequest
2 голосов
/ 17 сентября 2011

У меня есть супер-класс сущности со стратегией наследования TABLE_PER_CLASS, определенной в моем EJB-проекте. Я пытался использовать EJB3Unit для модульного тестирования, но только для того, чтобы понять, что стратегия наследования TABLE_PER_CLASS еще не поддерживается EJB3Unit. Существуют ли другие тестовые библиотеки, которые его поддерживают? Я пытался гуглить, но ничего не пришло ...

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)

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Может быть, проверить OpenEJB. Вот пример , который использует JPA . Я не знаю, охватывает ли он ваш точный сценарий, но должен быть достаточно близко.

Обратите внимание, что на странице загрузки находится zip-файл с примерами, в котором содержится еще около двух десятков примеров. Все они являются модульными тестами и охватывают почти весь спектр EJB API, включая MDB, веб-сервисы, транзакции, безопасность и, конечно, базовые вещи, такие как JPA, источники данных и т. Д.

0 голосов
/ 18 апреля 2013

К настоящему времени. Вы должны проверить:

Таблица наследования классов в сущностях EJB3 на docs.jboss.org

Пример кода:

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

...

}   

Надеюсь, я помог.

...