Hi Serdar, can you show us your repository implementation?
I'm wondering why you have defined a query called "Get", I wonder if it's being used in that repo (I don't think it should be, if so) Ta Dan On Wed, 8 Nov 2017 at 17:09 Rade, Joerg / Kuehne + Nagel / Ham GI-DP < [email protected]> wrote: > Hi Serdar, > > did you consider: > > @javax.jdo.annotations.DatastoreIdentity( > strategy = javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, > column = "id") > > instead of: > > @PrimaryKey? > > Best regards > Jörg > > -----Ursprüngliche Nachricht----- > Von: Serdar Hamzaogullari [mailto:[email protected]] > Gesendet: Mittwoch, 8. November 2017 17:07 > An: [email protected] > Betreff: Menu getAll action returns table with many sql queries for each > entry > > Hi, > > I have a menu action like this, listAll action: > > > @DomainService( > nature = NatureOfService.VIEW_MENU_ONLY, > objectType = "profile-preferences-services", > repositoryFor = ProfilePreferences.class > ) > @DomainServiceLayout( > named = "Profile Preferences", > menuOrder = "3" > ) > public class ProfilePreferencesMenu { > > @Action(semantics = SemanticsOf.SAFE) > @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT) > @MemberOrder(sequence = "1") > public List<ProfilePreferences> listAll() { > return profilePreferencesRepository.listAll(); > } > . > . > . > > My Entity is that: > > > @javax.jdo.annotations.PersistenceCapable( > identityType=IdentityType.APPLICATION, > table="profile_preferences", > schema = "dbo" > ) > @javax.jdo.annotations.Version( > strategy= VersionStrategy.VERSION_NUMBER, > column="version") > @javax.jdo.annotations.Queries({ > @javax.jdo.annotations.Query( > name = "get", > value = "SELECT " > + "FROM > com.foreks.user.settings.domain.preferences.ProfilePreferences " > + "WHERE profileName.equals(:name)") > }) > @DomainObject( > objectType = "profile-preferences" > ) > public class ProfilePreferences implements Comparable<ProfilePreferences> { > > public ProfilePreferences(final String profileName) { > setProfileName(profileName); > } > > @javax.jdo.annotations.Column(allowsNull = "false", length= 150) > @PrimaryKey > @Getter @Setter > @Title(prepend = "Profile Preferences: ") > private String profileName; > > @javax.jdo.annotations.Column(allowsNull = "true", length = 4000) > @Property(editing = Editing.ENABLED,hidden = Where.ALL_TABLES) > @Getter @Setter > private String preferences; > > //region > delete (action) > @Action(semantics = SemanticsOf.NON_IDEMPOTENT_ARE_YOU_SURE) > public void delete() { > final String title = titleService.titleOf(this); > messageService.informUser(String.format("'%s' deleted", title)); > repositoryService.remove(this); > } > //endregion > > //region > delete (action) > @Action(semantics = SemanticsOf.NON_IDEMPOTENT) > public ProfilePreferences copy(@ParameterLayout(named="Profile Name") > String name) { > final ProfilePreferences object = new ProfilePreferences(name); > object.setPreferences(preferences); > repositoryService.persist(object); > return object; > } > //endregion > > //region > toString, compareTo > @Override > public String toString() { > return ObjectContracts.toString(this, "profileName"); > } > > @Override > public int compareTo(final ProfilePreferences other) { > return ObjectContracts.compare(this, other, "profileName"); > } > //endregion > > //region > injected services > @javax.inject.Inject > RepositoryService repositoryService; > > @javax.inject.Inject > TitleService titleService; > > @javax.inject.Inject > MessageService messageService; > //endregion > > } > > > When I click the List All action from the wicket viewer menu, server logs > this SQL queries: > > 19:03:07,334 [Native http-nio-8080-exec-4 DEBUG] SELECT > 'com.foreks.user.settings.domain.preferences.ProfilePreferences' AS > NUCLEUS_TYPE,A0.preferences,A0.profileName,A0.version FROM > dbo.profile_preferences A0 > 19:03:07,436 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'ahl'> > 19:03:07,442 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'akbank'> > 19:03:07,448 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'bmd'> > 19:03:07,454 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'DELTA'> > 19:03:07,460 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'foreks'> > 19:03:07,466 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'halky'> > 19:03:07,472 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'hcbs'> > 19:03:07,477 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'issanal'> > 19:03:07,483 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'marbas'> > 19:03:07,489 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'odeabank'> > 19:03:07,495 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'odtu'> > 19:03:07,500 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'osmanli'> > 19:03:07,506 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'piramit'> > 19:03:07,512 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'tebsanal'> > 19:03:07,517 [Native http-nio-8080-exec-5 DEBUG] SELECT > A0.preferences,A0.version FROM dbo.profile_preferences A0 WHERE > A0.profileName = <'ZIRAAT'> > > > There is a query for each entity. The firs query > > SELECT 'com.foreks.user.settings.domain.preferences.ProfilePreferences' > AS NUCLEUS_TYPE,A0.preferences,A0.profileName,A0.version FROM > dbo.profile_preferences A0 > > should be enough. Query for every entity becomes a performance problem. > How can I prevent this behavior ? Is there some thing wrong or missing in > my Entity Class or Menu Action Class ? > > Help please :) > > -- > <http://www.foreksmobile.com/redirect.html> > > P > > Bu mesaji yazdirmadan önce çevreye olan sorumlulugumuzu bir kez daha > düsünelim. > Please consider the environment before printing this e-mail. > > Bu elektronik posta ve onunla iletilen bütün dosyalar sadece göndericisi > tarafından alması amaçlanan yetkili gerçek ya da tüzel kişinin kullanımı > içindir. Eğer söz konusu yetkili alıcı değilseniz bu elektronik postanın > içeriğini açıklamanız, kopyalamanız, yönlendirmeniz ve kullanmanız > kesinlikle yasaktır ve bu elektronik postayı derhal silmeniz gerekmektedir. > FOREKS bu mesajın içerdiği bilgilerin doğruluğu veya eksiksiz olduğu > konusunda herhangi bir garanti vermemektedir. Bu nedenle bu bilgilerin ne > şekilde olursa olsun içeriğinden, iletilmesinden, alınmasından ve > saklanmasından sorumlu değildir. Bu mesajdaki görüşler yalnızca gönderen > kişiye aittir ve FOREKS'in görüşlerini yansıtmayabilir. > Bu e-posta bilinen bütün bilgisayar virüslerine karşı taranmıştır. > * > This e-mail and any files transmitted with it are confidential and > intended solely for the use of the individual or entity to whom they are > addressed. > If you are not the intended recipient you are hereby notified that any > dissemination, forwarding, copying or use of any of the information is > strictly prohibited, and the e-mail should immediately be deleted. FOREKS > makes no warranty as to the accuracy or completeness of any information > contained in this message and hereby excludes any liability of any kind for > the information contained therein or for the information transmission, > reception, storage or use of such in any way whatsoever. The opinions > expressed in this message belong to sender alone and may not necessarily > reflect the opinions of FOREKS. > This e-mail has been scanned for all known computer viruses. > > Kühne + Nagel (AG & Co.) KG > Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, USt-IdNr.: DE > 812773878. > Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Dr. Hansjörg Rodi (Vors. ), > Martin Brinkmann, Holger Ketz, Jan-Hendrik Köstergarten, Nicholas Minde, > Michael Nebel, Lars Wedel, Matthias Weiner. > Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., Rechtsform: > Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B 18745, > Geschäftsführendes Verwaltungsratsmitglied: Karl Gernandt. > Geschäftsleitung Region Zentral- und Osteuropa: Dr. Hansjörg Rodi (Vors.), > Thierry Held, Uwe Hött, Richard Huhn, Holger Ketz, Jan-Hendrik > Köstergarten, Jan Kunze, Michael Nebel, Guillaume Sauzedde, Mustafa Sener. > > Wir arbeiten ausschließlich auf Grundlage der Allgemeinen Deutschen > Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp 2017 weichen in > Ziffer 23 hinsichtlich des Haftungshöchstbetrages für Güterschäden (§ 431 > HGB) vom Gesetz ab, indem sie die Haftung bei multimodalen Transporten > unter Einschluss einer Seebeförderung und bei unbekanntem Schadenort auf 2 > SZR/kg und im Übrigen die Regelhaftung von 8,33 SZR/kg zusätzlich auf 1,25 > Millionen Euro je Schadenfall sowie 2,5 Millionen Euro je Schadenereignis, > mindestens aber 2 SZR/kg, beschränken. Die ADSp sind auf unserer Webseite > als Download erhältlich. Auf Anfrage senden wir Ihnen diese auch gerne zu. >
