从CrudRepository中的FindAll()打印记录

use*_*418 0 java entitymanager hibernate-entitymanager

我正在我的Repository类中扩展CrudRepository.我想使用findAll方法打印表格中的记录.到目前为止,我已经编写了一个测试类,我可以看到结果查询是正确的.如何在表格中打印单个记录?

这是我的代码片段:Repository Class

public interface RepositoryAda extends CrudRepository{


}
Run Code Online (Sandbox Code Playgroud)

服务类

@Service
public class Service{

@Autowired private RepositoryAda repository;

@Transactional
public List selectRecords(){
  return  (List) repository.findAll();
 }

}
Run Code Online (Sandbox Code Playgroud)

测试用例:

@Test
public void getAllRecords() {
    service.selectRecords();
}
Run Code Online (Sandbox Code Playgroud)

如何将表中的各个记录打印到控制台?

Pau*_*tha 9

在使用存储库接口时,我更喜欢使用Google的Guava.您可以打开findAll() Iterable变成List<Type>一个有一行.

public RecordRepository extends CrudRepository<Record, Long> {}

public class RecordServiceImple implements RecordService {
    RecordRepository recordRepository;

    public List<Record> selectRecord() {
        return Lists.newArrayList(recordRepository.findAll()); // Guava library 
        // or just simply cast it. 
        // return (List<Record>)recordRepository.findAll();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后循环浏览列表

for (Record record : records) {
    System.out.println(record);
}
Run Code Online (Sandbox Code Playgroud)

只需使用表格格式,就可以超越toString()你的Record班级,无论你的班级名称是什么String.format()

  • 是的,只需将其转换为`return(List <Record>)recordRepository.findAll();` (8认同)
  • 没有使用Guava库,有没有其他方法可以做到这一点? (3认同)