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.
ORM | Transaction | Data Model | DSL |
---|---|---|---|
○ | ○ | × | ○ |
○: Korrespondenz ×: Nicht unterstützt
Main.java
CriteriaQuery<Employee> query = em.getCriteriaBuilder().createQuery(Employee.class);
em.createQuery(query).getResultStream().forEach(e -> {
System.out.format("%1s: %2s, %3s, %4s\n", e.id, e.first_name, e.middle_name, e.last_name);
});
Main.java
CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<Employee> query = builder.createQuery(Employee.class);
Root<Employee> root = query.from(Employee.class);
em.createQuery(query.select(root).where(builder.equal(root.get(Employee_.id), 1L)))
.getResultStream()
.forEach(e -> {
System.out.format("%1s: %2s, %3s, %4s\n", e.id, e.first_name, e.middle_name, e.last_name);
});
Main.java
em.createQuery(query.select(root).where(builder.equal(root.get(Employee_.id), 1L)))
.getResultStream()
.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 {
@Id
public long id;
public String first_name;
public String middle_name;
public String last_name;
@OneToMany(fetch = FetchType.EAGER)
@JoinColumn(name = "employee_id", table = "post")
public List<Post> posts;
}
Post.java
@Entity
@Table(name="post")
public class Post {
@Id
public long id;
public long employee_id;
public String name;
}
Ist noch nicht.
Recommended Posts