Witam
Mam problem związany z asocjacyjnym mapowaniem.
Chciałbym przy użyciu jsf wyświetlić dane z dwóch rożnych tabel które sa ze sobą połączone.
public class Bid {
private Integer bidId;
private String amount;
private Item item;
public Bid() {
}
public class Item{
private Integer itemId;
private String name;
private String descr;
private Set<Bid> bidSet;
public Item() {
}
oczywiscie sa gety i setery,
<hibernate-mapping>
<class name="model.Bid" table="bid">
<id column="bid_id" name="bidId" type="int"/>
<property column="amount" name="amount" not-null="true" type="string"/>
<many-to-one column="item_id" name="item" not-null="true"/>
</class>
<class name="model.Item" table="item">
<id column="item_id" name="itemId" type="int"/>
<property column="name" name="name" not-null="true" type="string"/>
<property column="descr" name="descr" not-null="true" type="string"/>
<set name="bidSet" cascade="all" inverse="true" >
<key column="item_id"/>
<one-to-many class="model.Bid"/>
</set>
</class>
</hibernate-mapping>
@ManagedBean
@RequestScoped
public class Bean {
public Bean() {
}
public List<Bid> getBid() {
SessionFactory sf = HibernateUtil.getSessionFactory();
Session s = sf.openSession();
List<Bid> pp =(List<Bid>)s.createQuery("SELECT b FROM Bid b").list();
s.close();
return pp;
}
<f:view>
<h:form>
<h:dataTable value="#{Bean.bid}" var="bi" border="1" >
<h:column>
<h:outputText value="#{bi.amount}"/>
</h:column>
<h:column>
<h:outputText value="#{bi.bidId}"/>
</h:column>
</h:dataTable>
</h:form>
</f:view>
Tak działa ale tylko z jednej tabeli pobiera dane.
chodzi mi głownie jak napisać metodę w Bean żebym mógł użyć zapytania z inner join, próbowałem rzutować na Object i nic nie wychodzi. I jak takie połączenie przedstawić w jsf
Pozdrawiam i gory dzieki,