2016-09-19 22 views
0

我想通过使用react.js和Java Spring保存所有数据。我使用REST发送数据,但其中一个数据类在MongoDB中的集合中为空。我控制了所有数据类型是否相等。我无法看到并解决我的错误。我共享Spring数据类型定义和react.js定义。部分数据在java弹簧中为空并且反应js

BildirimGrubu自带空

Java的春天:

package tr.com.innova.watcher; 

import com.fasterxml.jackson.annotation.JsonInclude; 
import lombok.Data; 
import java.util.List; 
/** 
* Created by SBK on 03.09.2016. 
*/ 
@Data 
@JsonInclude(JsonInclude.Include.NON_NULL) 
public class BildirimGrubu { 
    String emailMetni; 
    String smsMetni; 
    List<Alici> alici; 
    enum EmailEkTipi{ 
     HICBIRI, EXCEL, PDF 
    }; 
    EmailEkTipi ekTip; 
    enum BildirimYontemi{ 
     EMAIL, SMS, HEPSI, HICBIRI 
    }; 
    BildirimYontemi bildirimYont; 
    int mesajSayisi; 
    int mesajKarakter; 
} 

React.js:

import * as React from "react"; 


export enum EmailEkTipi{ 
    HICBIRI, EXCEL, PDF 
} 
export enum BildirimYontemi { 
    EMAIL, SMS, HEPSI, HICBIRI 
} 
export enum TetikleyiciTipi{ 
    CRON, SIMPLE 
} 
export class Alici { 
    label:string; 
    value:string; 

    constructor(name:string, 
       val:string) { 
     this.label = name; 
     this.value = val; 

    } 
} 
export class BildirimGrubu { 
    emailMetni:string; 
    smsMetni:string; 
    alici:Array<Alici>; 
    ekTip:EmailEkTipi; 
    bildirimYont:BildirimYontemi; 
    mesajSayisi:number; 
    mesajKarakter:number; 

    constructor(emailMetni:string, smsMetni:string, alici:Array<Alici>, ekTip:EmailEkTipi, bildirimYont:BildirimYontemi, mesajSayisi:number,mesajKarakter:number) { 
     this.emailMetni = emailMetni; 
     this.smsMetni = smsMetni; 
     this.alici = alici; 
     this.ekTip = ekTip; 
     this.bildirimYont = bildirimYont; 
     this.mesajSayisi = mesajSayisi; 
     this.mesajKarakter = mesajKarakter; 
    } 
} 

export class Tetikleyici { 
    tetikleyiciAdi:string; 
    aciklama:string; 
    tetikleyiciIcerik:TetikleyiciTipi; 
    durum:boolean; 
    bildirimGrubu:BildirimGrubu; 
    tip:TetikleyiciTipi; 
    bildirimEkle:boolean; 

    constructor(tetikleyiciAdi:string, aciklama:string, tetikleyiciIcerik:TetikleyiciTipi, durum:boolean, bildirimGrubu:BildirimGrubu, tip:TetikleyiciTipi, bildirimEkle:boolean) { 
     this.tetikleyiciAdi = tetikleyiciAdi; 
     this.aciklama = aciklama; 
     this.tetikleyiciIcerik = tetikleyiciIcerik; 
     this.durum = durum; 
     this.bildirimGrubu = bildirimGrubu; 
     this.tip = tip; 
     this.bildirimEkle = bildirimEkle; 
    } 
} 
export class Sorgu { 
    _id:string; 
    userName:string; 
    anaSorgu:string; 
    aciklama:string; 
    altSorguList:Array<string>; 
    tetikleyici:Tetikleyici; 
    sName:string; 

    constructor(id:string, username:string, anaSorgu:string, aciklama:string, altSorguList:Array<string>, tetikleyici:Tetikleyici, sName:string) { 
     this._id = id; 
     this.userName = username; 
     this.anaSorgu = anaSorgu; 
     this.aciklama = aciklama; 
     this.altSorguList = altSorguList; 
     this.tetikleyici = tetikleyici; 
     this.sName=sName; 
    } 
} 

数据与REST发送DB:

[new Sorgu("1","Hi","select","select sorgusu",["hi","hoy"],new Tetikleyici("tetikle", "hello", TetikleyiciTipi.CRON, true, new BildirimGrubu("a", "a", [["ali","bak"]], EmailEkTipi.EXCEL, BildirimYontemi.HEPSI, 1, 1), TetikleyiciTipi.CRON, true),"sorgu_8")] 

我希望能转移你我的问题。感谢您的帮助。

+0

如何在JavaScript中使用枚举?这段代码是否运行没有错误?它在浏览器上运行吗? – FurkanO

+0

没有错误。我使用它们的枚举类型(java spring和react.js)。对我来说这是一个问题吗?我使用Chrome作为网页浏览器。 @FurkanO –

+0

Enum在Javascript中不可用 – FurkanO

回答

0

虽然再次创建类,我意识到我忘了添加公共。因此,java不能访问类的对象。不要忘记公众。 :)

即使如此,谢谢!