Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将条件中sql的字符串或整数数组转换为逗号分隔的整数或字符串 public List getCategory(最终字符串logicalUnitCode、最终字符串LogicalInitiadent、最终字符串关键字){ 返回实体管理器 .createNativeQuery( “从“+logicalUnitCode+”中选择名称,其中“+keyword+”::文本位于(“+LogicalInitiated+”::文本)”) .getResultList(); }_Java_Sql_Postgresql - Fatal编程技术网

Java 将条件中sql的字符串或整数数组转换为逗号分隔的整数或字符串 public List getCategory(最终字符串logicalUnitCode、最终字符串LogicalInitiadent、最终字符串关键字){ 返回实体管理器 .createNativeQuery( “从“+logicalUnitCode+”中选择名称,其中“+keyword+”::文本位于(“+LogicalInitiated+”::文本)”) .getResultList(); }

Java 将条件中sql的字符串或整数数组转换为逗号分隔的整数或字符串 public List getCategory(最终字符串logicalUnitCode、最终字符串LogicalInitiadent、最终字符串关键字){ 返回实体管理器 .createNativeQuery( “从“+logicalUnitCode+”中选择名称,其中“+keyword+”::文本位于(“+LogicalInitiated+”::文本)”) .getResultList(); },java,sql,postgresql,Java,Sql,Postgresql,在某些情况下,关键字是int8,LogicalInitiated是整数字符串,例如:(“1,2,3,4,5”),在某些情况下,关键字是varchar,LogicalInitiated是字符串((“test,test1,test2”)。我想对这两种情况都使用一个查询。有什么建议吗?如何实现这一点?是否可以将两者都转换为text或varchar?在调用getCategory()之前,我使用postgres创建LogicalInitiated字符串并传递。但将查询修改为“in(“+LogicalIni

在某些情况下,关键字是int8,LogicalInitiated是整数字符串,例如:(“1,2,3,4,5”),在某些情况下,关键字是varchar,LogicalInitiated是字符串((“test,test1,test2”)。我想对这两种情况都使用一个查询。有什么建议吗?如何实现这一点?是否可以将两者都转换为text或varchar?在调用getCategory()之前,我使用postgres

创建LogicalInitiated字符串并传递。但将查询修改为
“in(“+LogicalInitiated+”)

逻辑初始值应为“1,2,3”或“string1”、“string2”、“string3” 要将字符串列表转换为单引号和逗号分隔的字符串,请使用以下代码

在JDK 8或更高版本中,请使用

  public List<String> getCategory(final String logicalUnitCode, final String logicalUnitIdent, final String keyword) {
        return entityManager
                .createNativeQuery(
                        "select name from " + logicalUnitCode + " where " + keyword + "::text in(" + logicalUnitIdent + "::text)")
                .getResultList();
    }
List stringList=newarraylist(Arrays.asList(“string1”、“string2”、“string3”);
String list=String.join(“,”,stringList
.stream()
.map(名称->(“'”+name+“”))
.collect(Collectors.toList());
System.out.println(列表);//打印'string1','string2','string3'

在某些情况下,关键字是长的?一个表列有多长?这很令人困惑。我的坏…int8是一种列类型,其中,(..)关键字是列名,对吗?是..在调用getCategory()之前,在这种情况下,关键字是例如(代码是varchar或id是int8)创建LogicalInitiadent字符串并传递。修改查询以处理字符串和数字
List<String> stringList = new ArrayList<String>(Arrays.asList("string1","string2","string3"));
        String list= String.join(",", stringList
                .stream()
                .map(name -> ("'" + name + "'"))
                .collect(Collectors.toList()));

System.out.println(list); // prints 'string1','string2','string3'