จะรับองค์ประกอบทั้งหมดของเอนทิตีใน spring-boot ได้อย่างไร

ฉันกำลังส่งคำขอ GET จาก angular5 ไปยัง spring-boot เพื่อรับองค์ประกอบทั้งหมดของเอนทิตี Contrat ด้านล่าง

นี่คือเอนทิตี:

@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Contrat implements Serializable{

        @Id @GeneratedValue
        private Long id;
        private Date dateDebut ;
        private Date dateFin ;
        @ManyToOne
        @JoinColumn(name = "Id_Project")
        @JsonBackReference(value="projet-contrat")
        private Project project;

        @ManyToOne
        @JoinColumn(name = "Id_AppUser")
        @JsonBackReference(value="appuser-contrat")
        private AppUser appUser;
}

นี่คือพื้นที่เก็บข้อมูล:

  public interface ContratRepo extends JpaRepository<Contrat,Long> {

    @Query("select from Contrat c where c.appUser = :userApp")
    public Page<Contrat> chercherContrat(@Param("userApp") AppUser userApp  
   , Pageable pageable);

   }

ใน Angular5 console.log(data) ส่งคืนผลลัพธ์นี้สำหรับตัวอย่าง:

 {id: 1, dateDebut: 1526083200000, dateFin: 1526083200000} 

อย่างที่คุณเห็นไม่มีองค์ประกอบโครงการ (ที่ฉันต้องการในส่วนหน้า)

ฉันต้องการแสดงองค์ประกอบคอนทราตเชิงมุมพร้อมข้อมูลบางส่วนของโครงการที่เกี่ยวข้องกับ.

มีความคิดอะไรบ้าง?


person dEs12ZER    schedule 22.05.2018    source แหล่งที่มา
comment
คุณจะต้องขอโทษฉันถ้าฉันกระตือรือร้นเกินไป แต่คุณกำลังฝ่าฝืนกฎสิบอันดับแรกของ OWASP ดังนั้นหวังว่าคุณจะไม่วางโค้ดนี้บนอินเทอร์เน็ต คุณไม่ควรเปิดเผยคีย์หลักจากฐานข้อมูลในส่วนหน้า และโดยเฉพาะอย่างยิ่งเมื่อฐานข้อมูลสร้างขึ้นโดยอัตโนมัติ ใน OWASP 2013 สิ่งนี้เรียกว่า Insecure Direct Object References ใน OWASP 2017 คุณจะพบว่าเป็น A5-2017: Broken Access Control โดยส่วนตัวแล้วฉันมักจะใช้ DTO เมื่อส่งข้อมูลไปยังส่วนหน้า มีโพสต์ SO มากมายเกี่ยวกับ DTO และเอนทิตีที่คุณสามารถอ่านเพื่อดูรายละเอียดเพิ่มเติมได้   -  person Klaus Groenbaek    schedule 22.05.2018
comment
ขอบคุณสำหรับข้อมูลที่น่าสนใจที่เป็นประโยชน์เหล่านี้ ฉันจะอ่านเรื่องนี้อย่างแน่นอน คุณหมายถึงว่าเมื่อเราเห็นคอลัมน์ตัวเลขในตารางแอปพลิเคชันเว็บหรืออื่นๆ มันไม่ได้หมายถึงคอลัมน์ในฐานข้อมูลใช่ไหม ฉันมักจะใช้อันหนึ่งในฐานข้อมูล   -  person dEs12ZER    schedule 24.05.2018


คำตอบ (1)


แทนที่ jpaRepositiry คุณสามารถใช้ที่เก็บ PagingAndSorting เพื่อรับรายละเอียดเอนทิตีที่เกี่ยวข้องทั้งหมดผ่าน findAll api

person saroj    schedule 22.05.2018
comment
คุณช่วยอธิบายเพิ่มเติมได้ไหม? - person dEs12ZER; 22.05.2018
comment
โปรดดูเอกสารประกอบการบู๊ตสปริง - person saroj; 22.05.2018