Überlegungen zum Java Persistence Framework 2017 (6) Ebean

Vorherigen Post

Vorwort

Da ich mit der Lückenzeit schreibe, würde ich es begrüßen, wenn Sie auf Teile mit geringer Genauigkeit hinweisen könnten. Schließen Sie zunächst diejenigen aus, die EOL sind. Wir werden kostenpflichtige Funktionen in Betracht ziehen, diese jedoch aufgrund des Taschenproblems nicht verwenden. Die verwendete Datenbank ist aus einem dummen Grund wie "Nun, vielleicht kann Postgre verwendet werden, auch wenn es nicht angegeben ist" auf Postgre festgelegt.

Umgebung

Tabellenstruktur

employeeテーブルからpostテーブルにID紐づけ

Korrespondenzbereich

ORM Transaction Data Model DSL
×

○: Korrespondenz ×: Nicht unterstützt

Impressionen

Stichprobe

Einzeltabellensuche

Suche alle

Main.java


EbeanServer server = Ebean.getServer("example");
server.beginTransaction();
server.find(Employee.class).findList().stream().forEach(e -> {
    System.out.println(e.id + ":" + e.first_name + " " + e.middle_name + " " + e.last_name);
});
server.endTransaction();

Primärschlüsselsuche

Main.java


//Normaler Typ
server.find(Employee.class).where().eq("id", Long.valueOf(1)).findList().stream().forEach(e -> {
    System.out.println(e.id + ":" + e.first_name + " " + e.middle_name + " " + e.last_name);
});

//Typensicherer Typ
server.find(Employee.class).where().idEq(Long.valueOf(1)).findList().stream().forEach(e -> {
    System.out.println(e.id + ":" + e.first_name + " " + e.middle_name + " " + e.last_name);
});

//Der Typ, der die typsichere Abfragebohne verwendet
new QEmployee().id.eq(Long.valueOf(1)).findList().stream().forEach(e -> {
    System.out.println(e.id + ":" + e.first_name + " " + e.middle_name + " " + e.last_name);
});

Tabellenverknüpfung

Main.java


server.find(Employee.class).findList().stream().forEach(e -> {
    System.out.format("%1s:%2s %3s %4s\n", e.id, e.first_name, e.middle_name, e.last_name);
    e.posts.stream().forEach(p -> {
        System.out.format("\t%1s: %2s, %3s\n", p.id, p.employee_id, p.name);
    });
});

Employee.java


@Entity
@Table(name="employee")
public class Employee extends Model {
    @Id
    @GeneratedValue(strategy= GenerationType.SEQUENCE)
    public long id;
    public String first_name;
    public String middle_name;
    public String last_name;

    @OneToMany(mappedBy = "employee")
    public List<Post> posts;
}

Post.java


@Entity
@Table(name="post")
public class Post {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    public long id;
    public long employee_id;
    public String name;

    @ManyToOne(optional=false)
    public Employee employee;
}

Der Punkt

Suchtpunkte

Nach dem Post

Ist noch nicht.

Referenzartikel

Recommended Posts

Überlegungen zum Java Persistence Framework 2017 (6) Ebean
Berücksichtigung des Java Persistence Framework 2017 (Zusammenfassung) -1
Überlegungen zum Java Persistence Framework 2017 (5) Iciql
Berücksichtigung des Java Persistence Framework 2017 (7) EclipseLink
Überlegungen zum Java Persistence Framework 2017 (1)
Berücksichtigung des Java Persistence Framework 2017 (8) Hibernate5
Überlegungen zum Java Persistence Framework 2017 (2) Doma2
Java-Framework
Erraten Sie das Java Persistence Framework 2017 (3) Reladomo
Java Framework Vergleich
[Java] Sammlungsframework
Spielen Sie Framework2.5 (Java) -Tipps
Installieren Sie Java auf dem Mac
Führen Sie PostgreSQL unter Java aus
[Entwicklung] Java Framework Vergleich
Lernen von Java Framework # 1 (Mac-Version)
Java-Versionsverwaltung unter macOS
Installieren Sie OpenJDK7 (JAVA) unter Ubuntu 14.04
Downgrade von Java unter openSUSE Linux
Reflexion über die Manipulation von Java-Strings
Beim Übergeben von Java Gold SE 8
Oracle Java 8 unter Docker Ubuntu
Überprüfungshinweise zum Java Collections Framework
Installieren Sie Java unter WSL Ubuntu 18.04
Führen Sie das Java-Applet auf Ubuntu aus
Fügen Sie Oracle Java 8 in CircleCI 2 ein
Ändern Sie die Java-Version unter CentOS
Installieren Sie Java 1.8.0 unter Amazon Linux2