在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ spring開發(fā)項目時,前后端需要返回的數(shù)據(jù)不同,該如何處理

spring開發(fā)項目時,前后端需要返回的數(shù)據(jù)不同,該如何處理

我是java菜鳥一個,問點小白問題?

用spring-boot開發(fā)項目,spring-data-jpa訪問數(shù)據(jù)庫,

數(shù)據(jù)庫有很多字段,但是用戶端只用一部分,而后臺需要的數(shù)據(jù)較為全面,比如:

entity的字段:

import lombok.Data;

import javax.persistence.*;
import java.util.Date;

@Data
@Entity
@Table(name = "account")
public class Account {

    @Id
    @GeneratedValue
    private Long id;

    private String nickName;  // 用戶昵稱

    private Integer status;  // 用戶狀態(tài),可用于不可用

    private String gender;  // 性別

    private String signature;  // 簽名

    private Date updatedAt; // 更新時間

    private Date createdAt;  // 創(chuàng)建時間

    private Date loginAt; //  登錄時間

    private String loginIp; //  登錄IP
    
    private String adminNote; //  管理員備注
}

這個表中: id, nickName, gender, signature 用戶端頁面用的到,其他字段不希望給用戶看到,但是管理員應(yīng)該看到,

那entity類應(yīng)該怎樣設(shè)計呢,是要做兩個entity類么?

我前端和后端通訊是采用的graphql,是不是前后端生成不同的Schema呢

回答
編輯回答
逗婦惱

不用spring mvc ?spring mvc 可以解決你的疑惑

2018年9月7日 11:36
編輯回答
裸橙

如果是前后臺顯示的數(shù)據(jù)不同,通常是要多個entity的。
你這個需求就是用不同的entity在service層包裝數(shù)據(jù),然后返回給前端。
另外你可以百度一下dto vo dao這些entity的區(qū)別,有助于你理解怎么傳不同的entity

2017年11月22日 14:33
編輯回答
夏夕
1、你返回的信息是什么格式的?json還是xml。
2、假設(shè)你返回的是json,那你可以不需要序列化返回的字段。
3、我提供簡單的思路就是返回的時候肯定要序列化,將不需要的字段排除掉就可以了。
案例:
     springboot默認的Json序列化是jackson。在返回json的情況下你可以將不需要的字段排除掉。
public class User {                                                   
                                                                      
    public int id;                                                    
                                                                      
    public String name;                                               
    //加上這個注解可以排除序列化。
    @JsonIgnore                                                       
    public String pwd;                                                
                                                                      
    public int age;                                                   
                                                                      
    public User(int id , String name , String pwd , int age) {        
        this.id = id;                                                 
        this.name = name;                                             
        this.pwd = pwd;                                               
        this.age = age;                                               
    }               
  ...此處省略get\set                                                  

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

    @RequestMapping("")
    public Object findUser()
    {
        return new User(1,"demo","demo",22);
    }
}

返回結(jié)果

{
"id": 1,
"name": "demo",
"age": 22
}
2018年3月13日 20:59