Can you load operation lazily? ie: Call DrawingMapItem.getOperation() on a DrawingMapItem that is returned from getDrawingMapItemsWithOperationsByDrawingMapId(...)?
Also, how are you enhancing your Entities? Thanks, Rick On Thu, Mar 29, 2012 at 12:24 PM, Bruno Dusausoy <[email protected]> wrote: > Hi, > > I have a problem with the "join fetch" JPQL clause (OpenJPA 2.1.1). > > The SQL executed underneath is ok, the "joins" are done and if I > copy/paste the generated SQL request in SQL Server 2005, it returns the > right results : right number of records, right number of columns, ... > But it seems there's a problem with the "mapping"; OpenJPA forgets somehow > to map the Operation columns back to an entity. > My operation are always null. > > Do I have to specify something to OpenJPA in order to force it to map the > Operation entity ? > > Here's the snippet for my entity : > > @Entity > @Table(name = "PDrawingMapItems") > public class DrawingMapItem { > > @Id > @GeneratedValue(strategy = GenerationType.IDENTITY) > @Column(name = "Id") > private Long id; > > @ManyToOne(fetch = FetchType.LAZY) > @JoinColumn(name = "OperationId") > private Operation operation; > > @ManyToMany(fetch = FetchType.EAGER) > @JoinTable( > name = "PDrawingMapItemMarkingLevels"**, > joinColumns = {@JoinColumn(name = "ItemId")}, > inverseJoinColumns = {@JoinColumn(name = "MarkingId")} > ) > private List<MarkingLevel> markingLevels; > > @Enumerated(EnumType.STRING) > private TraceabilityType traceabilityType; > > @ManyToOne > @JoinColumn(name = "DrawingMapId") > private DrawingMap drawingMap; > > // Getters and setters omitted > } > > And here's what I'm trying to execute : > > private List<DrawingMapItem> > getDrawingMapItemsWithOperatio**nsByDrawingMapId(Long > mapId) { > final String queryString = "select dmi from DrawingMapItem dmi join > fetch dmi.operation where dmi.drawingMap.id = :mapId order by dmi.id"; > List<DrawingMapItem> mapItems = > entityManager.createQuery(**queryString, > DrawingMapItem.class).**setParameter("mapId", mapId).getResultList(); > return mapItems; > } > > Regards. > -- > Bruno Dusausoy > Software engineer > YP5 Software > -- > Pensez environnement : limitez l'impression de ce mail. > Please don't print this e-mail unless you really need to. > -- *Rick Curtis*
