Heim >Java >javaLernprogramm >PlayFramework implementiert eine APP vollständig (3)
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
// 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
// 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
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完整实现一个APP(三)的内容,更多相关内容请关注PHP中文网(www.php.cn) !