[
https://issues.jboss.org/browse/ISPN-1820?page=com.atlassian.jira.plugin....
]
Michael Wittig updated ISPN-1820:
---------------------------------
Steps to Reproduce: See attached test cases (was: /**
* Here we use SearchMapping to have the ability to add Objects to the cache where
Annotations are not possible.
*/
@Test
public void testSearchMapping() {
final SearchMapping mapping = new SearchMapping();
mapping
.entity(BondPVO.class)
.indexed()
.providedId()
.property("id", ElementType.METHOD)
.property("name", ElementType.METHOD)
.property("isin", ElementType.METHOD)
;
final Properties properties = new Properties();
properties.put("hibernate.search.default.directory_provider",
"ram");
properties.put(Environment.MODEL_MAPPING, mapping);
final Configuration config = new ConfigurationBuilder()
.indexing()
.enable()
.indexLocalOnly(true)
.withProperties(properties)
.build();
final DefaultCacheManager cacheManager = new DefaultCacheManager(config);
final Cache<Long, BondPVO> cache = cacheManager.getCache();
final SearchManager sm = Search.getSearchManager(cache);
final BondPVO bond = new BondPVO(1, "Test", "DE000123");
try {
cache.put(bond.getId(), bond);
} catch (final SearchException e) {
fail("SearchMapping not working: " + e.getMessage());
}
final QueryBuilder qb = sm.buildQueryBuilderForClass(BondPVO.class).get();
final Query q =
qb.keyword().onField("name").matching("Test").createQuery();
final CacheQuery cq = sm.getQuery(q, BondPVO.class);
assertEquals(1, cq.getResultSize());
}
public static final class BondPVO {
private long id;
private String name;
private String isin;
public BondPVO(long id, String name, String isin) {
super();
this.id = id;
this.name = name;
this.isin = isin;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIsin() {
return isin;
}
public void setIsin(String isin) {
this.isin = isin;
}
}
/**
* Here we show that the first test could work.
*/
@Test
public void testWithoutSearchMapping() {
final Properties properties = new Properties();
properties.put("hibernate.search.default.directory_provider",
"ram");
final Configuration config = new ConfigurationBuilder()
.indexing()
.enable()
.indexLocalOnly(true)
.withProperties(properties)
.build();
final DefaultCacheManager cacheManager = new DefaultCacheManager(config);
final Cache<Long, BondPVO2> cache = cacheManager.getCache();
final SearchManager sm = Search.getSearchManager(cache);
final BondPVO2 bond = new BondPVO2(1, "Test", "DE000123");
cache.put(bond.getId(), bond);
final QueryBuilder qb = sm.buildQueryBuilderForClass(BondPVO2.class).get();
final Query q =
qb.keyword().onField("name").matching("Test").createQuery();
final CacheQuery cq = sm.getQuery(q, BondPVO2.class);
assertEquals(1, cq.getResultSize());
}
@Indexed @ProvidedId
public static final class BondPVO2 {
@Field
private long id;
@Field
private String name;
@Field
private String isin;
public BondPVO2(long id, String name, String isin) {
super();
this.id = id;
this.name = name;
this.isin = isin;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getIsin() {
return isin;
}
public void setIsin(String isin) {
this.isin = isin;
}
})
Forum Reference:
https://community.jboss.org/message/648612#648612 (was:
https://community.jboss.org/message/648612#648612)
SearchMapping is not recognized
-------------------------------
Key: ISPN-1820
URL:
https://issues.jboss.org/browse/ISPN-1820
Project: Infinispan
Issue Type: Bug
Components: Querying
Affects Versions: 5.1.0.FINAL
Environment: Windows XP, Java 1.6.0_26
Reporter: Michael Wittig
Assignee: Sanne Grinovero
Labels: annotation, query,, searchmapping
Attachments: ISPN1820Test.java
SearchMapping is not recognized by Infinispan and therfore it is not possible to add
Objects to cache where you can not add Annotations. (maybe you just have the class Files)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira