mysql—如何使用java在存储库springboot中执行以特定符号分隔的查询

gkn4icbw  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(291)

我想用query by分隔结果数据 "~" 在同一个实体中,通过 "," 我的代码
主存储库.java

public interface mainRepository extends CrudRepository<Error, Long> {

    @Query(value= "SELECT * FROM Error t where t.applicationID = :applicationid", nativeQuery= true)
    List<Error> findListByApp(@Param("applicationid") String applicationid);
}

在另一个类中,我称之为函数

String cb = errorRepository.findListByApp("application1").toString();
System.out.println(cb);

执行cb的结果是

[com.info.main.Error@6ec8b40e, com.info.main.Error@6ec8b40e, com.info.main.Error@6ec8b40e]

我想让它排序的应用程序,然后名称,然后电子邮件。
我想要达到的结果是这样的:

[app1~name1~email1, app2~name2~email2, app3~name3~email3]
f0brbegy

f0brbegy1#

为什么在结果列表中使用tostring?

String cb = errorRepository.findListByApp("application1").toString();//why toString?

相反,您必须使用如下列表:

List<Error> result = errorRepository.findListByApp("application1");
//this will print the list or Error it will call to String for each error
System.out.println(result);

要显示结果,只需覆盖 toString 例如,使用所需格式的错误实体中的方法。

@Entity
public class Error {

    private String app;
    private String name;
    private String email;

    //getter setter

    @Override
    public String toString() {
        return app + "~" + name + "~" + email;
    }
}

相关问题