【问题标题】:how to check array of value in hibernate table column如何检查休眠表列中的值数组
【发布时间】:2018-10-06 18:55:39
【问题描述】:

我有一个 partdetails 表,在这个 partdetails 中我已经预加载了数据。每次我向客户开具账单时,我都会从 partdetails 表中获取数据,如果我的表中没有任何数据,则意味着我输入了所有详细信息并向客户开具账单,因此需要在该 partdetails 表中添加新添加的部件详细信息信息.这就是我想要做的。

我正在使用休眠... 比如我的数据是这样的

part[0]="abc123" assume (already in table)
part[1]="def123" assume (already not in table)
part[2]="ghi123" assume (already in table)
part[3]="jkl123" assume (already not in table)

select valueflagarray from partsdetails where part

我需要一个类似的 valueflagarray

valueflagarray[0]=true
valueflagarray[1]=false
valueflagarray[2]=true
valueflagarray[3]=false

如果 valueflagarray=flase..

上面的问题我可以用一个for循环来做一个select语句。但我需要一个干净的解决方案,因为我有数百万条记录。

array A;
    for (int i=0;i<part.length;i++){
select * from partdetails where partnumber=part[i]
A[i]=resultset.length;

} 我会得到这样的结果,但我不想要这个解决方案。

A[0]=1;
A[1]=1;
A[2]=0;
A[3]=1;

.. 休眠或其他内容中是​​否有任何内置功能,但我需要减少处理时间。 请帮我。提前致谢

【问题讨论】:

  • 感谢指正

标签: java mysql sql arrays hibernate


【解决方案1】:

您应该像这样执行单个查询,而不是在 for 循环中执行查询并一次又一次地访问数据库以获取结果:

select * from partdetails where partnumber in (Arrays.stream(part).collect(Collectors.joining(","))

将这些结果从结果集中收集到一个列表中

现在,遍历数组并检查该部分是否存在于结果列表中。如果没有,请将其添加到您的 valueflagarray 中。

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 2014-11-11
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    相关资源
    最近更新 更多