簡體   English   中英

如何在 Spring Boot 中獲取 json 格式的選擇數據

[英]How to get select data in json format in Spring Boot

存儲庫

@Repository
public interface UserDao extends JpaRepository<User, Long> {
    @Query(value = "SELECT ss.name AS name, \n" +
            " SUM(pp.amount) AS amount, \n" +
            " REPLACE(ss.name, 'SomeName', 'DifferentName') AS cname \n" +
            " FROM payments AS pp\n" +
            " INNER JOIN auth_user AS au ON au.id = pp.creator_id\n" +
            " INNER JOIN services AS ss ON ss.id = pp.service_id\n" +
            " WHERE\n" +
            " pp.created_dt >= '2021-09-28' AND pp.created_dt < '2021-09-29' \n" +
            " AND ss.name = 'SomeName' AND pp.status = 'SUCCESS' \n" +
            " GROUP BY ss.name\n" //+
             , nativeQuery = true)
    List<User> findAll();
}

我的實體

@Entity
//@Table(name = "payment")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    //@Column(name = "name")
    private String name;

    //@Column(name = "amount")
    private long amount;

   // @Column(name = "name")
    private String cName;

    public User(
            @JsonProperty("name") String name,
            @JsonProperty("amount")long amount,
            @JsonProperty("cName")String cName) {
        this.name = name;
        this.amount = amount;
        this.cName = cName;
    }

    public User(long id, String name, long amount, String cName) {
        this.id = id;
        this.name = name;
        this.amount = amount;
        this.cName = cName;
    }

    public long getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public long getAmount() {
        return amount;
    }

    public String getcName() {
        return cName;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", amount=" + amount +
                ", cName='" + cName + '\'' +
                '}';
    }
}

服務

@Service(value = "userService")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    private List<SimpleGrantedAuthority> getAuthority() {
        return Arrays.asList(new SimpleGrantedAuthority("ROLE_ADMIN"));
    }

    public List<User> findAll() {
        List<User> list = new ArrayList<>();
        userDao.findAll();
        return list;
    }

    @Override
    public User save(User user) {
        return userDao.save(user);
    }
}

控制器

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/users")
    public List<User> getAllUsers() {
        return userService.findAll();
    }

    @RequestMapping(value = "/user", method = RequestMethod.GET)
    public List<User> listUser() {
        return userService.findAll();
    }

    @RequestMapping(value = "/user", method = RequestMethod.POST)
    public User create(@RequestBody User user) {
        return userService.save(user);
    }

                                                                                                                  

我是初學者,我想編寫一個簡單的休息服務,它將從我的請求中獲取數據到存儲庫,並以 json 格式將其輸出到 localhost: 8080。沒有什么對我有用。 請幫幫我。 我應該如何實現這一點。 我試圖自己做,但我收到 404 錯誤我知道需要在控制器中調用存儲庫方法。 但很可能我做錯了什么......我已經列出了所有的課程。 在郵遞員中,我沒有顯示任何內容

在 UserServiceImpl 類中的公共列表用戶 findAll() 方法上方添加 @Override

嘗試,

http://localhost:8080/users/users

http://localhost:8080/users/user

兩者都會給出相同的響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM