• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java StringBridge类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.hibernate.search.bridge.StringBridge的典型用法代码示例。如果您正苦于以下问题:Java StringBridge类的具体用法?Java StringBridge怎么用?Java StringBridge使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



StringBridge类属于org.hibernate.search.bridge包,在下文中一共展示了StringBridge类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: delete

import org.hibernate.search.bridge.StringBridge; //导入依赖的package包/类
@Override
public void delete(
		Class<?> entityClass,
		List<Class<?>> inIndexOf,
		Object id,
		EntityProvider entityProvider,
		Transaction tx) {
	for ( Class<?> indexClass : inIndexOf ) {
		RehashedTypeMetadata metadata = IndexUpdater.this.metadataForIndexRoot.get( indexClass );
		List<String> fields = metadata.getIdFieldNamesForType().get( entityClass );
		for ( String field : fields ) {
			DocumentFieldMetadata metaDataForIdField = metadata.getDocumentFieldMetadataForIdFieldName().get(
					field
			);
			SingularTermDeletionQuery.Type idType = metadata.getSingularTermDeletionQueryTypeForIdFieldName()
					.get( entityClass );
			Object idValueForDeletion;
			if ( idType == SingularTermDeletionQuery.Type.STRING ) {
				FieldBridge fb = metaDataForIdField.getFieldBridge();
				if ( !(fb instanceof StringBridge) ) {
					throw new IllegalArgumentException( "no TwoWayStringBridge found for field: " + field );
				}
				idValueForDeletion = ((StringBridge) fb).objectToString( id );
			}
			else {
				idValueForDeletion = id;
			}
			if ( indexClass.equals( entityClass ) ) {
				this.searchIntegrator.getWorker().performWork(
						new Work(
								entityClass,
								(Serializable) id,
								WorkType.DELETE
						), tx
				);
			}
			else {
				HSQuery hsQuery = this.searchIntegrator
						.createHSQuery()
						.targetedEntities( Collections.singletonList( indexClass ) )
						.luceneQuery(
								this.searchIntegrator.buildQueryBuilder()
										.forEntity( indexClass )
										.get()
										.keyword()
										.onField( field )
										.matching( idValueForDeletion )
										.createQuery()
						);
				int count = hsQuery.queryResultSize();
				int processed = 0;
				// this was just contained somewhere
				// so we have to update the containing entity
				while ( processed < count ) {
					for ( EntityInfo entityInfo : hsQuery.firstResult( processed ).projection(
							ProjectionConstants.ID
					).maxResults( HSQUERY_BATCH )
							.queryEntityInfos() ) {
						Serializable originalId = (Serializable) entityInfo.getProjection()[0];
						Object original = entityProvider.get( indexClass, originalId );
						if ( original != null ) {
							this.update( original, tx );
						}
						else {
							// original is not available in the
							// database, but it will be deleted by its
							// own delete event
							// TODO: log this?
						}
					}
					processed += HSQUERY_BATCH;
				}
			}
		}
	}
}
 
开发者ID:Hotware,项目名称:Hibernate-Search-GenericJPA,代码行数:77,代码来源:IndexUpdater.java



注:本文中的org.hibernate.search.bridge.StringBridge类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java ServletTester类代码示例发布时间:2022-05-22
下一篇:
Java Plot3DPanel类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap