Heim  >  Artikel  >  Java  >  PlayFramework implementiert eine APP vollständig (3)

PlayFramework implementiert eine APP vollständig (3)

黄舟
黄舟Original
2016-12-23 16:37:511242Durchsuche

1. Post-Klasse hinzufügen

Paketmodelle;

import java.util.*;
import javax.persistence.*;
import play.db.jpa. *;

@Entity
@Table(name = "blog_post")
öffentliche Klasse Beitrag erweitert Modell {
öffentlicher String-Titel;
öffentliches Datum der Veröffentlichung am;

@Lob
öffentlicher String-Inhalt;

@ManyToOne
öffentlicher Benutzerautor;

öffentlicher Beitrag (Benutzerautor, String-Titel, String-Inhalt) {
this.author = Autor;
this.title = title;
this.content = title;
}
}

@Lob-Bezeichner, das Feld ist ein großer Texttyp, @ManyToOne erkennt, dass jeder Beitrag nur einem Benutzer entsprechen kann und ein Benutzer mehreren Beiträgen entsprechen kann

2. Testfälle hinzufügen

@Test
öffentlich void createPost () {
// Einen neuen Benutzer erstellen und speichern
Benutzer user = new User("bob@Gmail.com", "####", "Bob").save();

// Einen neuen Beitrag erstellen
new Post(user, „My first post“, „Hello world“).save();

// Testen, ob der Beitrag erstellt wurde erstellt
assuranceEquals(1, Post.count());

// Alle vom Benutzer erstellten Beiträge abrufen
List posts = Post.find("byAuthor", user).fetch () ;

// Tests
AssertEquals(1, Posts.size());
Post firstPost = posts.get(0);
AssertNotNull(FirstPost);
AssertEquals( user, firstPost.author);
AssertEquals("Mein erster Beitrag", FirstPost.title);
AssertEquals("Hallo Welt", FirstPost.content);
AssertNotNull(FirstPost.postedAt);
}

 

3. Kommentarklasse hinzufügen

@Entity
öffentliche Klasse Kommentar erweitert Modell {
öffentlicher String-Autor ;
öffentliches Datum der Veröffentlichung am;

@Lob
öffentlicher String-Inhalt;

@ManyToOne
öffentlicher Beitrag;

öffentlicher Kommentar(Beitrag veröffentlichen, String-Autor, String-Inhalt) {
this.post = post;
this.author = author;
this.content = content;
this.postedAt = new Date();
}
}

 

4. Testfall hinzufügen

@Test
public void postComments() {
// Einen neuen Benutzer erstellen und speichern
User bob = new User("bob@gmail.com", "secret", "Bob").save();

// Einen neuen Beitrag erstellen
BobPost posten = new Post(bob, "My first post", "Hello world").save();

// Einen ersten Kommentar posten
new Comment(bobPost, "Jeff", "Nice post" ).save();
new Comment(bobPost, „Tom“, „Das wusste ich!“).save();

// Alle Kommentare abrufen
List Comment. find("byPost", bobPost).fetch();

// Tests
assuranceEquals(2, bobPostComments.size());

Comment firstComment = bobPostComments.get (0 );
AssertNotNull(firstComment);
AssertEquals("Jeff", FirstComment.author);
AssertEquals("Schöner Beitrag", FirstComment.content);
AssertNotNull(FirstComment.postedAt) ;

Comment secondComment = bobPostComments.get(1);
AssertNotNull(SecondComment);
AssertEquals("Tom", SecondComment.author);
AssertEquals("Das wusste ich!" , secondComment .content);
assuranceNotNull(secondComment.postedAt);
}

 

5. Kommentar hinzufügen

@OneToMany( mappedBy= "post", cascade=CascadeType.ALL)
public List comments;

public Post(Benutzerautor, String-Titel, String-Inhalt) {
this.comments = new ArrayList< ;Comment> ;();
this.author = author;
this.title = title;
this.content = title;
this.postedAt = new Date();
}

 

6. Methode in der Post-Klasse hinzufügen

public Post addComment(String author, String content) {
Comment newComment = new Comment(this, author, content ).save();
this.comments.add(newComment);
this.save();
return this;
}

 

7. Testfälle hinzufügen

@Test
public void useTheCommentsRelation() {
   // Einen neuen Benutzer erstellen und speichern
   Benutzer bob = neuer Benutzer("bob@gmail.com", "secret", "Bob" ).save();

   // Einen neuen Beitrag erstellen
   Post bobPost = new Post(bob, "My first post", "Hello world").save();

   // Einen ersten Kommentar posten
   bobPost.addComment("Jeff", "Nice post");
   bobPost.addComment("Tom", "Das wusste ich!");

   / / Dinge zählen
   assertEquals(1, User.count());
   assertEquals(1, Post.count());
   assertEquals(2, Comment.count());

   // Bobs Beitrag abrufen
   bobPost = Post.find("byAuthor", bob).first();
   assertNotNull(bobPost);

   // Zu Kommentaren navigieren
   assertEquals( 2, bobPost.comments.size());
   assertEquals("Jeff", bobPost.comments.get(0).author);
   
   // Den Beitrag löschen
   bobPost.delete( );
   
   // Überprüfen Sie, ob alle Kommentare gelöscht wurden
   assertEquals(1, User.count());
   assertEquals(0, Post.count());
   assertEquals( 0, Comment.count());
}

  

 

运行Test,如有异常会出现下方提示

PlayFramework implementiert eine APP vollständig (3)

 以上就是PlayFramework完整实现一个APP(三)的内容,更多相关内容请关注PHP中文网(www.php.cn) !


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn