- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个项目,计划将 querydsl 与 hibernate 搜索结合使用。然而,我有一个阻碍,我不知道如何实现。我在下面显示的两个类之间有一个 oneToMany
关系(我省略了所有不相关的字段):
联系类(class)
public class Contact{
@OneToMany(mappedBy = "contact")
@OrderBy("startDate DESC")
@IndexedEmbedded
private List<AddressTemporal> addressHistory;
}
AddressTemporal 类
public class AddressTemporal{
@NotNull
@ManyToOne
@ContainedIn
private Contact contact;
@Field(index = Index.YES, analyze = Analyze.YES, store = Store.NO, indexNullAs = Constants.LUCENE_NULL)
@DateBridge(resolution = Resolution.DAY)
private Date endDate;
}
我已将 lucene 配置为使用字符串常量(“NULL”)对空字段进行索引,以便我可以使用该值查询空字段。
我的问题是,我需要执行一个查询,在 addressHistory
集合中进行搜索,但仅过滤 endDate
字段为 null 的查询。现在
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
fullTextEntityManager.createIndexer().startAndWait();
QContact c = new QContact("contact");
SearchQuery<Contact> query = new SearchQuery<> fullTextEntityManager.unwrap(FullTextSession.class), c)
query.where(c.addressHistory.any().endDate.isNotNull());
但这不起作用,因为 QueryDSL 中的搜索查询不支持 isNotNull() 和 isNull() 运算符。
我不能做这样的事情:
query.where(c.addressHistory.any().endDate.eq(Constants.LUCENE_NULL));
由于类型安全限制。
最后我的问题是:有没有办法在非 String
字段上使用 QueryDSL 和 hibernate 搜索执行“isNotNull”查询?或者我是否必须求助于 Lucene 查询语法?
谢谢
尤利西斯
最佳答案
我对你的例子有点困惑。 SearchQuery 来自哪里?您是否将 Hibernate ORM Criteria 查询与 Hibernate Search 查询混合在一起。后者看起来像这样:
QueryBuilder queryBuilder = searchFactory.buildQueryBuilder()
.forEntity( Contact.class )
.get();
Query luceneQuery = mythQB.keyword().onField("history").matching("storm").createQuery();
DSL 中没有特殊的方法来搜索空值。您只需在匹配子句中指定空标记值即可。
或者,您可以使用 native Lucene 查询 API 来构建查询。
关于java - QueryDSL 和 Hibernate 搜索 isNull 和 isNotNull 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25891596/
我见过几个在业务逻辑中使用以下代码的示例 sitecore 应用程序: Database database = Factory.GetDatabase(itemUri.DatabaseName);
我有一个简单的字段(实际上是一个属性): private final SimpleObjectProperty colored; ObjectWithColor类有一个属性 SimpleObj
为什么 Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotNull()声明为: public static void IsNotNull
我觉得问这个问题很傻,但我已经在两个独立的公司代码库中看到过这段代码,我开始认为我不知道有一些古老的 Java 知识。 所以,我们得到了这样的代码: /* Lot of corporate stuff
我喜欢可读性。 所以,我在几分钟前想出了一个扩展方法,用于 (x =! null) 类型语法,称为 IsNotNull。反过来,我还创建了一个 IsNull 扩展方法,因此 if(x == null)
我正在使用Doctrine\Common\Collections\Criteria::expr()(不是查询构建器表达式)。 这个类中似乎没有实现 isNotNull() 和 notLike() 运算
本文整理了Java中org.assertj.android.api.graphics.YuvImageAssert.isNotNull()方法的一些代码示例,展示了YuvImageAssert.isN
我有一个 iBatis 查询,例如 但是像 lowerLimit、upperLimit、maxLowerLimit、maxUpperLimit 和 state 这样的字段可能为 null,
在 Android 上使用 ORMLite 4.48,考虑以下用户表... @DatabaseTable(tableName = "users") public class User { @D
我有一个项目,计划将 querydsl 与 hibernate 搜索结合使用。然而,我有一个阻碍,我不知道如何实现。我在下面显示的两个类之间有一个 oneToMany 关系(我省略了所有不相关的字段)
Assert.IsNotNull(·) Assert.AreNotEqual(null,·) 之间是否存在功能差异? 我更喜欢第一个,因为它更具可读性。一位同事使用了第二种,我想知道是否也存在功能差异
NUnit.Framework.Assert 命名空间中有这两个方法。 我只是找不到它们之间的区别。我也很好奇什么时候使用哪个。 最佳答案 Two forms are provided for the
df.na().drop() 和 df.filter(df.col("onlyColumnInOneColumnDataFrame").isNotNull() && !df. 之间的语义有什么区别吗?
我是一名优秀的程序员,十分优秀!