-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 22 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 7:12 am 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
Hi,

I have some problem with nested @IndexedEmbedded.
Example:

...
@Indexed
class A {
...
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "B_ID", nullable = false)
@IndexedEmbedded
private B bbb;
...
}

...
class B {
...
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "B_C",
joinColumns = {@JoinColumn(name = "B_ID")},
inverseJoinColumns = {@JoinColumn(name = "C_ID")})
@IndexedEmbedded(depth = 1)
private List<C> cccs;
...
}

...
class C {
...
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_C_ID")
@Column(name = "C_ID")
private Long id;

@Version
@Column(name = "C_VERSION")
private Integer version;

@Column(name = "C_NAME", nullable = false)
@Field(index=Index.UN_TOKENIZED, store=Store.YES)
private String name;

@Column(name = "C_LEAF")
private Boolean leaf;

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "C_C_ID_PARENT")
private C parent;

@OneToMany(mappedBy = "parent", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<C> subC;

@ManyToMany(mappedBy = "cccs", fetch = FetchType.LAZY)
private Set<B> bbbs;
...
}


When I make mapping (A, B, C), the index is not generated (No errors, just without ""), OUTPUT two files: segments.gen, segments_1. I tried to add in class C:
...
@ManyToMany(mappedBy = "cccs", fetch = FetchType.LAZY)
@ContainedIn
private Set<B> bbbs;
...
and this is getting the same result.

And if I change in class B @IndexedEmbedded(depth = 1) to @IndexedEmbedded(depth = 0), then index is generated:
2011-01-13 11:53:48,994 [main] INFO org.hibernate.search.impl.SimpleIndexingProgressMonitor [line: 70] - Reindexed 463 entities
OUTPUT three files: segments.gen, segments_2 and _0.cfs.

But if I create example query (with the above generated index):
...
QueryBuilder queryBuilder = searchFactory.buildQueryBuilder().forEntity(A.class).get();
org.apache.lucene.search.Query luceneQuery = queryBuilder.keyword().onField("bbb.cccs.id").matching("100").createQuery();
...

I have below error:

Nested in org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.search.SearchException: Unable to find field bbb.cccs.id in com.example.model.C:
org.hibernate.search.SearchException: Unable to find field bbb.cccs.id in com.example.model.C
at org.hibernate.search.engine.DocumentBuilderIndexedEntity.objectToString(DocumentBuilderIndexedEntity.java:607)
at org.hibernate.search.query.dsl.impl.ConnectedMultiFieldsTermQueryBuilder.buildSearchTerm(ConnectedMultiFieldsTermQueryBuilder.java:133)
at org.hibernate.search.query.dsl.impl.ConnectedMultiFieldsTermQueryBuilder.createQuery(ConnectedMultiFieldsTermQueryBuilder.java:92)
at org.hibernate.search.query.dsl.impl.ConnectedMultiFieldsTermQueryBuilder.createQuery(ConnectedMultiFieldsTermQueryBuilder.java:73)
at com.example.ExampleSearchController.filter(ExampleSearchController.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:195)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:159)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
org.hibernate.search.SearchException: Unable to find field bbb.cccs.id in com.example.model.C
at org.hibernate.search.engine.DocumentBuilderIndexedEntity.objectToString(DocumentBuilderIndexedEntity.java:607)
at org.hibernate.search.query.dsl.impl.ConnectedMultiFieldsTermQueryBuilder.buildSearchTerm(ConnectedMultiFieldsTermQueryBuilder.java:133)
at org.hibernate.search.query.dsl.impl.ConnectedMultiFieldsTermQueryBuilder.createQuery(ConnectedMultiFieldsTermQueryBuilder.java:92)
at org.hibernate.search.query.dsl.impl.ConnectedMultiFieldsTermQueryBuilder.createQuery(ConnectedMultiFieldsTermQueryBuilder.java:73)
at com.example.ExampleSearchController.filter(ExampleSearchController.java:107)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:285)
at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:195)
at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:159)
at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:141)
at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:90)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:417)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:324)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)


Thanks for help


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 9:07 am 
Hibernate Team
Hibernate Team

Joined: Thu Apr 05, 2007 5:52 am
Posts: 1689
Location: Sweden
Hi,

Try adding @Field to the id property in C. The C entity is not indexed by itself, so there is no need to add the entity id to the document.

--Hardy


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 10:35 am 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
I have added in class C:
...
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_C_ID")
@Column(name = "C_ID")
@Field(index=Index.TOKENIZED, store=Store.NO)
private Long id;
...

and it does not work :(
Please get some others ideas.


So, the index is not generated (No errors, only below logs), OUTPUT two files: segments.gen, segments_1 and logs:
...
13 15:21:33,946 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.TwoPhaseLoad [line: 98] - Version: 0
2011-01-13 15:21:33,946 [Hibernate Search: entityloader-1] DEBUG org.springframework.beans.factory.annotation.InjectionMetadata [line: 82] - Processing injected method of bean 'com.example.model.A': PersistenceElement for public transient javax.persistence.EntityManager com.example.model.A.ajc$interField$com_example_model$entityManager
2011-01-13 15:21:33,947 [Hibernate Search: entityloader-1] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory [line: 242] - Returning cached instance of singleton bean 'entityManagerFactory'
2011-01-13 15:21:33,948 [Hibernate Search: entityloader-1] TRACE org.hibernate.loader.Loader [line: 1502] - Initializing object from ResultSet: [com.example.model.A#1101]
2011-01-13 15:21:33,948 [Hibernate Search: entityloader-1] TRACE org.hibernate.persister.entity.AbstractEntityPersister [line: 2200] - Hydrating entity: [com.example.model.A#1101]
2011-01-13 15:21:33,948 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 70] - found [851] as column [camp9_3_2_]
2011-01-13 15:21:33,948 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 70] - found [java.util.GregorianCalendar[time=1287297092813,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Warsaw",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=165,lastRule=java.util.SimpleTimeZone[id=Europe/Warsaw,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2010,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=17,DAY_OF_YEAR=290,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=31,SECOND=32,MILLISECOND=813,ZONE_OFFSET=3600000,DST_OFFSET=3600000]] as column [camp2_3_2_]
2011-01-13 15:21:33,948 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 70] - found [http://www.hdi-asekuracja.pl] as column [camp3_3_2_]
2011-01-13 15:21:33,948 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 70] - found [Asekuracja - ubezpieczenia dla Ciebie] as column [camp4_3_2_]
2011-01-13 15:21:33,948 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 66] - found [null] as column [camp5_3_2_]
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 70] - found [java.util.GregorianCalendar[time=1284933600000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Warsaw",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=165,lastRule=java.util.SimpleTimeZone[id=Europe/Warsaw,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2010,MONTH=8,WEEK_OF_YEAR=38,WEEK_OF_MONTH=4,DAY_OF_MONTH=20,DAY_OF_YEAR=263,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=3600000,DST_OFFSET=3600000]] as column [camp6_3_2_]
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 66] - found [null] as column [camp7_3_2_]
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] TRACE org.hibernate.type.descriptor.sql.BasicExtractor [line: 70] - found [1] as column [camp8_3_2_]
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.TwoPhaseLoad [line: 98] - Version: 1
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] TRACE org.hibernate.loader.Loader [line: 849] - done processing result set (3 rows)
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] DEBUG org.hibernate.jdbc.AbstractBatcher [line: 433] - about to close ResultSet (open ResultSets: 1, globally: 1)
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] DEBUG org.hibernate.jdbc.AbstractBatcher [line: 418] - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
2011-01-13 15:21:33,949 [Hibernate Search: entityloader-1] TRACE org.hibernate.jdbc.AbstractBatcher [line: 562] - closing statement
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] TRACE org.hibernate.loader.Loader [line: 979] - total objects hydrated: 6
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 130] - resolving associations for [com.example.model.B#646]
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.B.aaas#646]
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.B.cccs#646]
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 255] - done materializing entity [com.example.model.B#646]
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 130] - resolving associations for [com.example.model.A#729]
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 261] - loading entity: [com.example.model.B#646]
2011-01-13 15:21:33,950 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 434] - attempting to resolve: [com.example.model.B#646]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 451] - resolved object in session cache: [com.example.model.B#646]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.A.fffs#729]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.A.ssss#729]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 255] - done materializing entity [com.example.model.A#729]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 130] - resolving associations for [com.example.model.B#750]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.B.aaas#750]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.B.cccs#750]
2011-01-13 15:21:33,951 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 255] - done materializing entity [com.example.model.B#750]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 130] - resolving associations for [com.example.model.A#1000]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 261] - loading entity: [com.example.model.B#750]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 434] - attempting to resolve: [com.example.model.B#750]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 451] - resolved object in session cache: [com.example.model.B#750]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.A.fffs#1000]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.A.ssss#1000]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 255] - done materializing entity [com.example.model.A#1000]
2011-01-13 15:21:33,952 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 130] - resolving associations for [com.example.model.B#851]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.B.aaas#851]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.B.cccs#851]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 255] - done materializing entity [com.example.model.B#851]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 130] - resolving associations for [com.example.model.A#1101]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 261] - loading entity: [com.example.model.B#851]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 434] - attempting to resolve: [com.example.model.B#851]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] TRACE org.hibernate.event.def.DefaultLoadEventListener [line: 451] - resolved object in session cache: [com.example.model.B#851]
2011-01-13 15:21:33,953 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.A.fffs#1101]
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] TRACE org.hibernate.engine.loading.LoadContexts [line: 218] - creating collection wrapper:[com.example.model.A.ssss#1101]
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.TwoPhaseLoad [line: 255] - done materializing entity [com.example.model.A#1101]
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] DEBUG org.hibernate.engine.StatefulPersistenceContext [line: 893] - initializing non-lazy collections
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] DEBUG org.hibernate.transform.DistinctResultTransformer [line: 96] - transformed: 3 rows to: 3 distinct results
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] TRACE org.hibernate.impl.SessionImpl [line: 1436] - setting flush mode to: MANUAL
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] TRACE org.hibernate.impl.SessionImpl [line: 1455] - setting cache mode to: IGNORE
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] DEBUG org.hibernate.transaction.JDBCTransaction [line: 130] - commit
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] TRACE org.hibernate.jdbc.JDBCContext [line: 249] - before transaction completion
2011-01-13 15:21:33,954 [Hibernate Search: entityloader-1] TRACE org.hibernate.impl.SessionImpl [line: 570] - before transaction completion
2011-01-13 15:21:33,955 [Hibernate Search: entityloader-1] DEBUG org.hibernate.transaction.JDBCTransaction [line: 223] - re-enabling autocommit
2011-01-13 15:21:33,955 [Hibernate Search: entityloader-1] DEBUG org.hibernate.transaction.JDBCTransaction [line: 143] - committed JDBC Connection
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] TRACE org.hibernate.jdbc.JDBCContext [line: 263] - after transaction completion
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] DEBUG org.hibernate.jdbc.ConnectionManager [line: 427] - aggressively releasing JDBC connection
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] DEBUG org.hibernate.jdbc.ConnectionManager [line: 464] - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] TRACE org.hibernate.impl.SessionImpl [line: 600] - after transaction completion
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] TRACE org.hibernate.impl.SessionImpl [line: 318] - closing session
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] TRACE org.hibernate.jdbc.ConnectionManager [line: 398] - connection already null in cleanup : no action
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] TRACE org.hibernate.search.batchindexing.IdentifierConsumerEntityProducer [line: 98] - finished


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 10:45 am 
Hibernate Team
Hibernate Team

Joined: Thu Apr 05, 2007 5:52 am
Posts: 1689
Location: Sweden
So you exception is gone, right? That seems to be a step into the right direction. Have you inspected your index using Luke? Are all the fields you are searching for indexed?
How do you build your initial index and are you sure that your query should match something?

--Hardy


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 11:28 am 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
When I wrote:

When I make mapping (A, B, C), the index is not generated (No errors, just without ""), OUTPUT two files: segments.gen, segments_1. I tried to add in class C:
...
@ManyToMany(mappedBy = "cccs", fetch = FetchType.LAZY)
@ContainedIn
private Set<B> bbbs;
...
and this is getting the same result.
...


I received the same logs:
...
[Hibernate Search: entityloader-1] TRACE org.hibernate.search.batchindexing.IdentifierConsumerEntityProducer [line: 98] - finished
...

So, I have no exception when I started.

I build initial index with code listed below:
FullTextSession fullTextSession = Search.getFullTextSession(fSession.openSession());
fullTextSession.createIndexer().startAndWait();


Yes, my query should match something.
In the second case, when I change in class B @IndexedEmbedded(depth = 1) to @IndexedEmbedded(depth = 0), then index is generated. I have got result with example subquery:
...
queryBuilder.bool().must(queryBuilder.range().onField("startDate").below(Calendar.getInstance()).createQuery());
...

I have in class A

...
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "A_DATE")
@Field(index=Index.UN_TOKENIZED, store=Store.YES)
@CalendarBridge(resolution=Resolution.DAY)
private Calendar startDate;
...


but if I add as subquery:
queryBuilder.bool().must(queryBuilder.keyword().onField("bbb.cccs.id").matching("100").createQuery());

I have got the exception.


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 12:09 pm 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
Maybe the problem is that when I made nested mapping with A, B, C then Hibernate Search is using IdentifierConsumerEntityProducer:
...
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] TRACE org.hibernate.jdbc.ConnectionManager [line: 398] - connection already null in cleanup : no action
2011-01-13 15:21:33,956 [Hibernate Search: entityloader-1] TRACE org.hibernate.search.batchindexing.IdentifierConsumerEntityProducer [line: 98] - finished

but if I made nested mapping only with A, B then Hibernate Search is using EntityConsumerLuceneworkProducer:
...
2011-01-13 16:59:09,659 [Hibernate Search: collectionsloader-2] TRACE org.hibernate.jdbc.ConnectionManager [line: 398] - connection already null in cleanup : no action
2011-01-13 16:59:09,659 [Hibernate Search: BatchIndexingWorkspace-1] DEBUG org.hibernate.search.batchindexing.BatchIndexingWorkspace [line: 152] - All work for type com.example.model.A has been produced
2011-01-13 16:59:09,659 [Hibernate Search: collectionsloader-2] DEBUG org.hibernate.search.batchindexing.EntityConsumerLuceneworkProducer [line: 108] - finished
2011-01-13 16:59:10,283 [main] TRACE org.hibernate.search.backend.Workspace [line: 188] - Index changes commited.
2011-01-13 16:59:10,284 [main] TRACE org.hibernate.search.spi.internals.PolymorphicIndexHierarchy [line: 82] - Targeted indexed classes for [class com.example.model.A]: [class com.example.model.A]
2011-01-13 16:59:10,284 [main] TRACE org.hibernate.search.backend.impl.lucene.works.OptimizeWorkDelegate [line: 59] - optimize Lucene index: class com.example.model.A
2011-01-13 16:59:10,945 [main] TRACE org.hibernate.search.backend.Workspace [line: 212] - IndexWriter closed
2011-01-13 16:59:10,945 [main] INFO org.hibernate.search.impl.SimpleIndexingProgressMonitor [line: 70] - Reindexed 463 entities


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 12:24 pm 
Hibernate Team
Hibernate Team

Joined: Thu Apr 05, 2007 5:52 am
Posts: 1689
Location: Sweden
As mentioned, the first step is to see what's in the index.


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 12:41 pm 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
But, how can I see what's in the index when my index A was not generated?


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 13, 2011 12:46 pm 
Hibernate Team
Hibernate Team

Joined: Thu Apr 05, 2007 5:52 am
Posts: 1689
Location: Sweden
As far as I understood you had some segment files somewhere. In your case there should be a directory A relative to your index base directory. This directory should contain your index file you can open via Luke. Provided of course you are using the file system based directory provider and not the ram provider. If you don't see you index directory it might be at the time to post all the bits and pieces of your code: configuration, annotated entities, indexing and search code.

--Hardy


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Fri Jan 14, 2011 8:08 am 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
I found the problem. If I changed in class B LAZY -> EAGER then the index was created:
class B {
...
@ManyToMany(fetch =
FetchType.EAGER)
@JoinTable(name = "B_C",
joinColumns = {@JoinColumn(name = "B_ID")},
inverseJoinColumns = {@JoinColumn(name = "C_ID")})
@IndexedEmbedded(depth = 1)
private List<C> cccs;
...
}


The question is: Why can not be LAZY. I need to use LAZY initialization.
Maybe is some configuration (property setting) to work with this LAZY?


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Fri Jan 14, 2011 8:42 am 
Hibernate Team
Hibernate Team

Joined: Thu Apr 05, 2007 5:52 am
Posts: 1689
Location: Sweden
Lazy loading should work. I wonder whether it has something to do with your annotation placement. You are using field access (@Id is placed on the field). Have you tried to place all annotations on the getters?
How is class B initialized, especially the cccs list?


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 20, 2011 10:52 am 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
I have already tried to place all annotations on the getters.
How is class B initialized, especially the cccs list? - data that I want to index are already in database (table B_C has correct data)


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 20, 2011 12:47 pm 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
Thanks for response.
Any other ideas?


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Thu Jan 20, 2011 1:04 pm 
Hibernate Team
Hibernate Team

Joined: Thu Apr 05, 2007 5:52 am
Posts: 1689
Location: Sweden
Which version of Search are you using? Is it the latest? Earlier versions might contain a bug in the mass indexer, but in the latest versions it should work even with lazy loading.
Maybe you could create a full test case we could use to try to reproduce the problem. You also haven't posted the code for indexing and searching yet.

--Hardy


Top
 Profile  
 
 Post subject: Re: Nested @IndexedEmbedded
PostPosted: Fri Jan 21, 2011 5:07 am 
Newbie

Joined: Thu Jan 13, 2011 6:13 am
Posts: 16
My dependency of Hibernate Search:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
<version>3.3.0.Final</version>
</dependency>


Code for indexing data:

SessionFactory fSession = (SessionFactory) appCtx.getBean("sessionFactory");
FullTextSession fullTextSession = Search.getFullTextSession(fSession.openSession());
fullTextSession.createIndexer().startAndWait();


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 22 posts ]  Go to page 1, 2  Next

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.