Hallo ihr,
Wie kann ein Transient Feld das gerechneten Wert aus Datenbank bekommen?
Entity Bean
RawRequest.java
Session Bean
RequestBean.java
Wie kann das Transient Feld "offerListsize" das Wert von SQL-Statement "select count(*) from OFFER o where o.REQUEST_ID = rr.ID" bekommen? Das ist irgenwie falsch? Bis jetzt gibt das offerListsize 0 aus.
Manu
Wie kann ein Transient Feld das gerechneten Wert aus Datenbank bekommen?
Entity Bean
RawRequest.java
Java:
@SqlResultSetMapping(name="GetOfferSize", entities={
@EntityResult(entityClass=de.kirchedlau.ponte.ejb.entities.RawRequest.class, fields = {
@FieldResult(name="offerListSize", column="offerlistsize"),
@FieldResult(name="id", column="ID"),
@FieldResult(name="changeLog", column="CHANGE_LOG"),
...
...
})
}
)
@Entity
@Table(name = "RAW_REQUEST")
public class RawRequest implements Serializable {
@Id
@GeneratedValue
private long id;
@Column(name = "CHANGE_LOG")
private String changeLog;
....
....
@Transient
private int offerListSize;
Session Bean
RequestBean.java
Java:
@Stateless
public class RequestBean implements RequestInterface {
public List<RawRequest> getRawRequestsList() {
List<RawRequest> reqList = new LinkedList<RawRequest>();
Query query = manager.createNativeQuery("select distinct * , (select count(*) from OFFER o where o.REQUEST_ID = rr.ID) as offerlistsize from RAW_REQUEST rr ","GetOfferSize");
reqList.addAll((Collection<RawRequest>) query.getResultList());
return reqList;
}
}
Wie kann das Transient Feld "offerListsize" das Wert von SQL-Statement "select count(*) from OFFER o where o.REQUEST_ID = rr.ID" bekommen? Das ist irgenwie falsch? Bis jetzt gibt das offerListsize 0 aus.
Manu