Hilf mir plz mit einem Moment. Ich habe ungefähr 10 Artikel bereits gelesen, aber verstehe nicht, verbinden Sie Moment. Ich habe 2 Tabellen:JPA Kriterien API beitreten
public class News implements Serializable {
@Id
@GeneratedValue (generator = "increment")
@GenericGenerator (name = "increment", strategy = "increment")
private int id;
@Column
private String name;
@Column
private Date created;
@Column
private String data;
@ManyToOne (cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn (name = "category_id")
private NewsCategoryDict category;
// getters, setters
}
und
public class NewsCategoryDict implements Serializable {
@Id
@GeneratedValue (generator = "increment")
@GenericGenerator (name = "increment", strategy = "increment")
private int id;
@Column
private String name;
@OneToMany (mappedBy = "category", cascade = CascadeType.ALL)
private List<News> news = new ArrayList<>();
}
Ich möchte eine Abfrage funktioniert wie
SELECT * FROM news, categorynews WHERE news.category_id = categorynews.id;
Und dann mit
<div id="list_news">
<c:forEach items="${news}" var="news">
<h5>${news.id} : ${news.name} - ${news.created} ; ${news.data} (${news.category.name})</h5>
</c:forEach>
</div>
Und ich das Ergebnis in jsp erhalten Ich kann dieses JOIN mit der Kriterien-API nicht verstehen. Kannst du mir helfen ? Versuchen Sie, diese Schnipsel zu verwenden, aber einen Fehler erhalten
public List<News> getAll() {
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<News> cq = cb.createQuery(News.class);
Root<News> rootFromNews = cq.from(News.class);
Join<NewsCategoryDict, News> join = rootFromNews.join("category");
cq.select(join);
return em.createQuery(cq).getResultList();
}
PropertyNotFoundException: Anwesen ‚erstellt‘ nicht auf Typ ru.r1k0.spring.model.NewsCategoryDict gefunden
Sie schreiben: * Ich möchte eine Abfrage funktioniert wie: * 'SELECT * FROM Nachrichten, categorynews'. Diese Abfrage gibt alle Daten in beiden Tabellen zurück. Aber Sie schreiben in den Kommentar zu der Antwort unten: * aber ich will Liste *. Also was willst du? Wenn Sie eine Liste von 'News' wünschen, warum brauchen Sie einen * JOIN *? –
ujulu