Hi Serdar,

I've done a first-cut implementation of a solution for this, for 1.16.0.
It's disabled by default, and there is room for improvement, but it's
definitely a step in the right direction.

Details on ISIS-1774 ticket

Thx
Dan


On Tue, 21 Nov 2017 at 17:08 Dan Haywood <d...@haywood-associates.co.uk>
wrote:

>
> Yes, there's a ticket [1].
>
> With respect to a query returning a million times etc., I take the view
> that this would be a modelling error... No user wants to browse over so
> many rows. I think the framework should, therefore, automatically limit the
> number of rows, eg to 1000 (configurable).
>
> I'll look to do that in the same ticket.
>
> Thx,
> Dan.
>
>
>
> [1] https://issues.apache.org/jira/browse/ISIS-1774
>
>
> On Fri, 17 Nov 2017 at 10:46 Serdar Hamzaogullari <hasan.ser...@foreks.com>
> wrote:
>
>> Hi Dan,
>>
>> Let me remind you that also: at the first table render still we have a
>> Select all sql query right ? Think we have one million record on table.
>> Select all and buffer these objects at memory can cause an out of memory.
>> At the first table render before pagination you can apply the pagination
>> first page operation so that we never have a select all query.
>>
>> Did you create a ticket for this pagination issue ? How can I follow ? Can
>> I contribute ? I did not go inside the isis codes before. Maybe you can
>> point me to the related codes.
>>
>> On Fri, Nov 17, 2017 at 1:03 PM, Dan Haywood <
>> d...@haywood-associates.co.uk>
>> wrote:
>>
>> > Hi Serdar,
>> > Yeah, saw your email, been mulling on the best solution for this.
>> >
>> > The issue is that behind the scenes Isis creates a serializable (wicket)
>> > model which is the identity (oid) of each object to be rendered.  When
>> the
>> > user navigates to the second page, we just render the next set of
>> objects
>> > from this list, rehyrdating each from the serialized oid one by one.
>> >
>> > I can think of two possible improvements.
>> >
>> > The first, probably easier, would be to keep the same general
>> architecture,
>> > but to optimize things so that the framework does a single bulk request
>> of
>> > all object to be rendered.  I would imagine that would result in a
>> single
>> > SELECT FROM WHERE id in (x, y, z, a, b, ...) .  That's fine for a
>> small-ish
>> > number of objects (for example, SQL Server and Sybase have an upper
>> limit
>> > of ~1000 before they table scan).
>> >
>> > The second idea I have would be to change the architecture such that on
>> > pagination we resubmit the original query, but then keep track of where
>> > we're up to, eg instances 16~30 or 31~45 etc.  I think that would be
>> more
>> > work because the table being rendered would need to keep a memento of
>> that
>> > query, as well as which page we're on.
>> >
>> > I'll have a go at implementing the first idea as a first pass; hopefully
>> > will be quite easy.
>> >
>> > Thx
>> > Dan
>> >
>> > On Fri, 17 Nov 2017 at 09:15 Serdar Hamzaogullari <
>> hasan.ser...@foreks.com
>> > >
>> > wrote:
>> >
>> > > Hello Dan,
>> > >
>> > > Maybe you missed my email. Did you investigate the pagination
>> performance
>> > > problem that I indicated in my previous email ?
>> > >
>> > > On Mon, Nov 13, 2017 at 11:50 AM, Serdar Hamzaogullari <
>> > > hasan.ser...@foreks.com> wrote:
>> > >
>> > > > Hi Dan,
>> > > >
>> > > > Thanks for the solution. I tried it and it works fine for get all
>> menu
>> > > > action however if I click to any page in the pagination list I see
>> the
>> > > sql
>> > > > queries for all entries again.
>> > > >
>> > > > I think we need to solve the pagination performance problem.
>> > > >
>> > > > On Sun, Nov 12, 2017 at 7:57 PM, Dan Haywood <
>> > > d...@haywood-associates.co.uk
>> > > > > wrote:
>> > > >
>> > > >> Hi Serdar,
>> > > >>
>> > > >> I did.  And here's the thing ... the framework has always done this
>> > (at
>> > > >> least since 1.8.0, which was the first version I tested).  So, my
>> > > >> apologies
>> > > >> for indicating otherwise.
>> > > >>
>> > > >> Clearly we ought to do better here, and I do have a workaround
>> which
>> > you
>> > > >> could try out.  In your application's DomainApplication (subclass
>> of
>> > > >> IsisWicketApplication), add the following to the end of the init()
>> > > method:
>> > > >>
>> > > >>
>> > > >> getRequestCycleSettings().setRenderStrategy(RequestCycleSett
>> > > >> ings.RenderStrategy.REDIRECT_TO_BUFFER);
>> > > >>
>> > > >> By default we use the REDIRECT_TO_RENDER strategy ... I dimly
>> recall
>> > my
>> > > >> rationale as being that it's "safer"; this Wicket wiki page [1]
>> > explains
>> > > >> the difference.  However, this is what causes the 1+N loading that
>> we
>> > > see.
>> > > >> A first Isis/DN session is used to select the objects, and mementos
>> > for
>> > > >> all
>> > > >> retrieved objects are captured.  This first session is then closed.
>> > On
>> > > >> render, we then open a new Isis/DN session and use those mementos
>> to
>> > > >> retrieve all objects one by one.
>> > > >>
>> > > >> Using REDIRECT_TO_BUFFER means that all the work is done in a
>> single
>> > > >> session, avoiding the issue.
>> > > >>
>> > > >> My limited testing didn't throw up any adverse effects to
>> switching to
>> > > >> REDIRECT_TO_BUFFER, and I've raised a ticket [2] to explore
>> changing
>> > > this
>> > > >> behaviour.
>> > > >>
>> > > >> Thanks for raising this, let me know how you get on.
>> > > >>
>> > > >> Cheers
>> > > >> Dan
>> > > >>
>> > > >> [1]
>> > > https://cwiki.apache.org/confluence/display/WICKET/Render+strategies
>> > > >> [2] https://issues.apache.org/jira/browse/ISIS-1774
>> > > >>
>> > > >>
>> > > >> On Sat, 11 Nov 2017 at 20:30 Serdar Hamzaogullari <
>> > > >> hasan.ser...@foreks.com>
>> > > >> wrote:
>> > > >>
>> > > >> > Hello Dan,
>> > > >> >
>> > > >> > Did you have a chance to take look at my github example app
>> > > >> >
>> > > >> > 9 Kas 2017 Per, saat 16:22 tarihinde Serdar Hamzaogullari <
>> > > >> > hasan.ser...@foreks.com> şunu yazdı:
>> > > >> >
>> > > >> > > Hi Dan,
>> > > >> > >
>> > > >> > > Here is a complete example of the problem
>> > > >> > >
>> > > >> > > https://github.com/radresian/apache-isis-sample
>> > > >> > >
>> > > >> > > After running the application Click the ProfilePreferences
>> Menu ->
>> > > >> List
>> > > >> > > All, then you will see the SQL queries for each entry at the
>> > console
>> > > >> > logs...
>> > > >> > >
>> > > >> > > On Thu, Nov 9, 2017 at 2:17 AM, Dan Haywood <
>> > > >> > d...@haywood-associates.co.uk>
>> > > >> > > wrote:
>> > > >> > >
>> > > >> > >> Hmm, looks ok.
>> > > >> > >>
>> > > >> > >> Can you upload an example app to github so I can pull it down
>> and
>> > > >> take a
>> > > >> > >> closer look?
>> > > >> > >>
>> > > >> > >> Thx
>> > > >> > >> Dan
>> > > >> > >>
>> > > >> > >> On Wed, 8 Nov 2017 at 23:12 Serdar Hamzaogullari <
>> > > >> > hasan.ser...@foreks.com
>> > > >> > >> >
>> > > >> > >> wrote:
>> > > >> > >>
>> > > >> > >> > Hi Jörg,
>> > > >> > >> >
>> > > >> > >> > IdGeneratorStrategy.IDENTITY did not help. Same result.
>> > > >> > >> >
>> > > >> > >> > Hi Dan,
>> > > >> > >> >
>> > > >> > >> > Here is my repository:
>> > > >> > >> >
>> > > >> > >> >
>> > > >> > >> > @DomainService(
>> > > >> > >> >         nature = NatureOfService.DOMAIN,
>> > > >> > >> >         repositoryFor = ProfilePreferences.class
>> > > >> > >> > )
>> > > >> > >> > public class ProfilePreferencesRepository {
>> > > >> > >> >
>> > > >> > >> >     public List<ProfilePreferences> listAll() {
>> > > >> > >> >         return
>> > > >> > repositoryService.allInstances(ProfilePreferences.class);
>> > > >> > >> >     }
>> > > >> > >> >
>> > > >> > >> >     public ProfilePreferences get(final String name) {
>> > > >> > >> >         return repositoryService.uniqueMatch(
>> > > >> > >> >                 new QueryDefault<>(
>> > > >> > >> >                         ProfilePreferences.class,
>> > > >> > >> >                         "get",
>> > > >> > >> >                         "name", name));
>> > > >> > >> >     }
>> > > >> > >> >
>> > > >> > >> >     public ProfilePreferences create(final String name) {
>> > > >> > >> >         final ProfilePreferences object = new
>> > > >> > ProfilePreferences(name);
>> > > >> > >> >         serviceRegistry.injectServicesInto(object);
>> > > >> > >> >         repositoryService.persist(object);
>> > > >> > >> >         return object;
>> > > >> > >> >     }
>> > > >> > >> >
>> > > >> > >> >     @javax.inject.Inject
>> > > >> > >> >     RepositoryService repositoryService;
>> > > >> > >> >     @javax.inject.Inject
>> > > >> > >> >     ServiceRegistry2 serviceRegistry;
>> > > >> > >> > }
>> > > >> > >> >
>> > > >> > >> >
>> > > >> > >> >
>> > > >> > >> > On Wed, Nov 8, 2017 at 8:16 PM, Dan Haywood <
>> > > >> > >> d...@haywood-associates.co.uk>
>> > > >> > >> > wrote:
>> > > >> > >> >
>> > > >> > >> > > 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 <
>> > > >> > >> > > joerg.r...@kuehne-nagel.com> 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:
>> hasan.ser...@foreks.com]
>> > > >> > >> > > > Gesendet: Mittwoch, 8. November 2017 17:07
>> > > >> > >> > > > An: users@isis.apache.org
>> > > >> > >> > > > 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="P
>> > > >> rofile
>> > > >> > >> > > 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.
>> > ProfilePreferen
>> > > >> ces'
>> > > >> > 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.
>> > > >> > >> > > >
>> > > >> > >> > >
>> > > >> > >> >
>> > > >> > >> > --
>> > > >> > >> >  <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.
>> > > >> > >> >
>> > > >> > >>
>> > > >> > >
>> > > >> > >
>> > > >> >
>> > > >> > --
>> > > >> >  <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.
>> > > >> >
>> > > >>
>> > > >
>> > > >
>> > >
>> > > --
>> > >  <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.
>> > >
>> >
>>
>> --
>>  <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.
>>
>

Reply via email to