2013-04-18 1 views
0

, 내가 어떤 추상적 인 실체일반적인 유형은 내가</p> <p>잘 MongoDB를 작동 일부 웹 응용 프로그램을 만들 수 모르핀 프레임 워크 스프링 응용 프로그램을 실행하기 위해 노력하고있어

public abstract class AbstractEntity { 
    @Id 
    protected ObjectId id; 
    // getters, setters 
} 
에게 있습니다

또한 나는 약간의 추상 작업을

public abstract class AbstractDao<T extends AbstractEntity> extends BasicDAO<T, ObjectId> { 
    protected AbstractDao(Mongo mongo, Morphia morphia, String dbName) { 
     super(mongo, morphia, dbName); 
    } 
    //some methods 
} 

이 추상 엔티티에 대한 몇 가지 추상 다오이

public abstract class AbstractAction { 
    protected ActionType actionType; 
    protected int dynamicWeight; 
    protected Date createDate; 
    // getters, setters 
} 

나는 목록에서 해당 매장 일부 작업

액션 엔티티와 같은 좀 더 구체적인 실체가
public abstract class ActionEntity<T extends AbstractAction> extends AbstractEntity { 
    protected List<T> actions; 
    // getters, setters 
} 

조치를 좋아하는, 의견 등이 있습니다 그들이

public class LikeAction extends AbstractAction implements ICombinable { 
    protected ObjectId authorId; 
    protected ObjectId sourceId; 
    //getters, setters and overrided equals(); 
} 
처럼, 자신의 수업을

마지막으로, 예를 들어 저장하기위한 엔티티가 있습니다. 나는 그런 콩

<bean class="com.foo.app.dao.action.LikeActionDao" id="likeActionDao"> 
    <constructor-arg ref="mongo" index="0"/> 
    <constructor-arg ref="morphia" index="1"/> 
    <constructor-arg ref="database" index="2"/> 
</bean> 
<bean class="com.mongodb.Mongo" id="mongo"> 
    <constructor-arg value="127.0.0.1:27017" index="0" /> 
</bean> 
<bean id="morphia" class="com.google.code.morphia.Morphia" /> 
<bean class="java.lang.String" id="database"> 
    <constructor-arg value="database" /> 
</bean> 

하지만 난 봄 응용 프로그램을 실행하기 위해 노력하고있어 때 다음 예외가 있습니다

public class LikeActionEntity extends ActionEntity<LikeAction> {  
} 

와 애플리케이션 컨텍스트 내에서 그러한 주체

public class LikeActionDao extends AbstractDao<LikeActionEntity> { 
    protected LikeActionDao(Mongo mongo, Morphia morphia, String dbName) { 
     super(mongo, morphia, dbName); 
    } 
} 

에 대한 DAO를 좋아

스레드 "main"의 예외 org.springframework.beans.factory.BeanCreationException : 클래스 경로 resource [app-config.xml]에 'likeActionDao'라는 이름의 Bean을 생성하는 중 오류가 발생했습니다. Bean의 인스턴스화에 실패했습니다. 중첩 예외는 org.springframework.beans.BeanInstantiationException : 빈 클래스를 인스턴스화 할 수 없습니다. [com.foo.app.dao.action.LikeActionDao] : 생성자가 예외를 던졌습니다. 중첩 된 예외는 java.lang.RuntimeException : 잘못된 유형, 매개 변수화되지 않았습니다 ...

내가 뭘 잘못하고 있니?

답변

1

는이 AbstractDao를 사용하여 직접 BasicDAO에서 LikeActionDao을 연장하지 않도록 morhia issue

한번에 것 같다. LikeActionEntity를 매개 변수화하지 않으려 고합니다.

+0

이 – Xenobyte

0

당신이 가지고있는 설정 파일은 데이터베이스에 대한 구성이 없습니다.,

<bean class="java.lang.String" id="database"> 
    <constructor-arg value="database" /> </bean> 

당신은 그것을위한 몇 가지 값을 정의 할 수 있습니다.

+0

좋아, XML에서 likeActionDao 빈을 삭제하고 데이터베이스 빈을 얻으려고 노력하고 있습니다. – Xenobyte

관련 문제