[Javalist] Spring mongodb repository
zamek42
zamek42 at gmail.com
2012. Júl. 12., Cs, 13:43:18 CEST
hello,
A spring mongo doksi szerint a repository úgy néz ki, hogy csinálok egy
interface-t, ami öröklődik a Repository vagy valami *Repository
interface-től.
Ezután a repository package útvonalát megadva a spring kivánságra
szolgáltat egyet.
Egy mintapéldában ez működik is:
<mongo:repositories base-package="charris.example.repositories" />
a szóban forgó repository igy néz ki:
public interface ProductRepository extends MongoRepository<Product,
String>, QueryDslPredicateExecutor<Product> {
}
a használat:
ProductRepository repo = context.getBean(ProductRepository.class);
Ez működik, annak dacára, hogy a repository egy interface!
Ennek analógiájára szeretnék a saját web app-omban is eljárni:
package com.zamek.monitor.core.server.logging.repositories;
...
public interface BaseEventRepository extends MongoRepository<BaseEvent,
Long>,
QueryDslPredicateExecutor<BaseEvent> {
}
az appContext.html-ben ez van:
<context:annotation-config />
<mongo:mongo host="localhost" port="27017" />
<bean id="mongoTemplate"
class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg ref="mongo" />
<constructor-arg name="databaseName" value="monitordb" />
</bean>
<mongo:repositories
base-package="com.zamek.monitor.core.server.logging.repositories"/>
Így szeretnék kapni egy példányt:
BaseEventRepository repository =
this.context.getBean(BaseEventRepository.class);
Erre kapok egy szép nagy exception-t:
cause NoSuchBeanDefinitionException (id=174)
beanName null
beanType Class<T>
(com.zamek.monitor.core.server.logging.repositories.BaseEventRepository)
(id=189)
cause NoSuchBeanDefinitionException (id=174)
detailMessage "No unique bean of type
[com.zamek.monitor.core.server.logging.repositories.BaseEventRepository]
is defined: expected single bean but found 0: " (id=188)
Mit rontok el?
--
thx
Zoltan (Zamek) Zidarics
programmer
email:zamek42 at gmail.com
skype:zamek_z
További információk a(z) Javalist levelezőlistáról