我是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呢
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
}北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。