我有一个表SASDOSSIERS
,其中一列apentrytext
有一个值6.8.3 Dossiers "A" , SAS, Fürsorgeleistungen an Auslandschweizer
,我需要在最后一个,
之后选择Fürsorgeleistungen an Auslandschweizer
。SELECT distinct TRIM(SUBSTR(apentrytext,INSTR(apentrytext,',',-1)+1)) from SASDOSSIERS;
。如果我在sql中执行以下查询,则选择是正确的:
cq.multiselect(
cb.trim(
cb.substring(
sasdossier.get(Sasdossier_.apentrytext),
cb.sum(
cb.locate(sasdossier.get(Sasdossier_.apentrytext), cb.literal(","), cb.literal(Integer.valueOf(-1))),
1
)
)
)
).distinct(true);
然而,如果我尝试使用jpa critera
中的等价物SELECT DISTINCT trim(BOTH FROM substr(sasdossier0_.apentrytext, instr(sasdossier0_.apentrytext, ?) + 1)) AS col_0_0_
FROM ACCESS_DB.sasdossiers sasdossier0_
WHERE sasdossier0_.apentrytext IS NOT NULL
它完全忽略了我在from参数中放入的内容(我尝试过很多不同的值,例如:-2,-100,1,2,100),它似乎忽略了我放在那里,结果总是相同。而且,hibernate生成的查询表明参数确实被忽略了:
it('should filtering by interval correctly', function () {
filter_field.click();
var filter_field_text = filter_field.element(by.css('input'));
var exist_value1 = element(by.xpath('//tr[@data-row-index="1"]/td[@data-column-index="5"]/div')).getText().then(function (value) {
var floatValue = parseFloat(value);
return (floatValue);
});
var exist_value2 = element(by.xpath('//tr[@data-row-index="1"]/td[@data-column-index="5"]/div')).getText().then(function (value) {
var floatValue = parseFloat(value);
return Math.round(floatValue) + 1;
});
filter_field_text.sendKeys(exist_value1);
filter_field_text.sendKeys('-');
filter_field_text.sendKeys(exist_value2);
browser.sleep(3000);
var filtered_values = element.all(by.xpath('//tr/td[@data-column-index="5"]/div'));
filtered_values.each(function (element, index) {
var current_value = element.getText().then(function (value) {
var floatValue = parseFloat(value);
return (floatValue);
});
expect(exist_value1 <= current_value).toBe(true);
});
if (true) console.log("Test done!");
});
这似乎是一个合法的错误,但我之前找不到任何有同样错误的人,所以,我做错了什么?我应该报告错误吗?
谢谢。