0

GlassfishのEclipselinkで正常に動作するアプリケーションがあります。求人市場では非常に多くの要件があるため、Hibernate4.1.5.FinalをGlassfish3.1.2で使用するようにアプリを移植しようとしています。私のエンティティクラスはすべてアノテーションを使用しており、マッピングファイルがありません。

Mavenの依存関係を設定し、persistence.xmlに新しい休止状態ベースの永続性ユニットを作成しました。

<persistence-unit name="testHibernate" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>jdbc/myco</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.hbm2ddl.auto" value="validate"/>
      <property name="hibernate.archive.autodetection" value="class, hbm"/>
      <property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="true"/>
      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.SunONETransactionManagerLookup"/>
      <property name="hibernate.dialect" value="uk.co.myco.general.Mysql5BitBooleanDialect"/>
      <property name="hibernate.generate_statistics" value="true"/>
    </properties>
  </persistence-unit>

ログイン後、次のクエリが実行されます。

@PersistenceContext(unitName = "testHibernate")
protected EntityManager em;
...
Query query = em.createQuery("SELECT u FROM User u WHERE u.userName = ?1");
query.setParameter(1, "testuser");
User user = (User) query.getSingleResult();

これにより、javax.persistence.EntityNotFoundExceptionがスローされます。ID1のuk.co.myco.entities.Playerが見つかりません。Playerクラスは、次のようにUserクラスから参照されます。

@OneToOne
@JoinColumn(name = "defaultPlayer", referencedColumnName = "id")
private Player defaultPlayer;

「Player」エンティティは永続的な継承階層の一部であり、基本クラスから継承する他のすべてのエンティティはクエリに含まれているようです。

ID 1のプレーヤーは確かにデータベースに存在しますが、これは実行されているように見える非常に複雑なクエリです。上記のユーザーuからuを選択するだけで、このクエリを生成する方法を知っている人はいますか?

select
        player0_.id as id0_13_,
        player0_1_.createUser as createUser0_13_,
        player0_1_.created as created0_13_,
        player0_1_.entityState as entitySt3_0_13_,
        player0_1_.updateUser as updateUser0_13_,
        player0_1_.updated as updated0_13_,
        player0_1_.version as version0_13_,
        player0_1_.ageGroup as ageGroup0_13_,
        player0_1_.ageGroupNickname as ageGroup7_0_13_,
        player0_1_.country as country0_13_,
        player0_1_.currentSeason as current16_0_13_,
        player0_1_.dtype as dtype0_13_,
        player0_1_.introNotes as introNotes0_13_,
        player0_1_.mainLocation as mainLoc17_0_13_,
        player0_1_.name as name0_13_,
        player0_1_.photoId as photoId0_13_,
        player0_1_.sport as sport0_13_,
        player0_.birthCertificate as birthCer1_1_13_,
        player0_.defaultPlayer as defaultP2_1_13_,
        player0_.dob as dob1_13_,
        player0_.email as email1_13_,
        player0_.firstName as firstName1_13_,
        player0_.lastName as lastName1_13_,
        player0_.middleInitial as middleIn7_1_13_,
        player0_.photo as photo1_13_,
        player0_.user as user1_13_,
        user1_.id as id6_0_,
        user1_.createUser as createUser6_0_,
        user1_.created as created6_0_,
        user1_.entityState as entitySt3_6_0_,
        user1_.updateUser as updateUser6_0_,
        user1_.updated as updated6_0_,
        user1_.version as version6_0_,
        user1_.agreedTerms as agreedTe6_6_0_,
        user1_.browserType as browserT7_6_0_,
        user1_.country as country6_0_,
        user1_.dateFormat as dateFormat6_0_,
        user1_.defaultPlayer as default45_6_0_,
        user1_.dob as dob6_0_,
        user1_.email as email6_0_,
        user1_.emailVerified as emailVe12_6_0_,
        user1_.firstName as firstName6_0_,
        user1_.gender as gender6_0_,
        user1_.groupName as groupName6_0_,
        user1_.addrCountry as addrCou16_6_0_,
        user1_.addrCounty as addrCounty6_0_,
        user1_.addrGeoStatus as addrGeo18_6_0_,
        user1_.addrLat as addrLat6_0_,
        user1_.addrLine1 as addrLine20_6_0_,
        user1_.addrLine2 as addrLine21_6_0_,
        user1_.addrLng as addrLng6_0_,
        user1_.addrPostCode as addrPos23_6_0_,
        user1_.addrTownCity as addrTow24_6_0_,
        user1_.lastLoginFailureIpAddress as lastLog25_6_0_,
        user1_.lastLoginIpAddress as lastLog26_6_0_,
        user1_.lastLoginTime as lastLog27_6_0_,
        user1_.lastName as lastName6_0_,
        user1_.loginCount as loginCount6_0_,
        user1_.loginFailures as loginFa30_6_0_,
        user1_.middleInitial as middleI31_6_0_,
        user1_.mobileSecurityCode as mobileS32_6_0_,
        user1_.mobileVerified as mobileV33_6_0_,
        user1_.passWord as passWord6_0_,
        user1_.phoneHome as phoneHome6_0_,
        user1_.phoneMobile as phoneMo36_6_0_,
        user1_.regRandomNumber as regRand37_6_0_,
        user1_.registrationIpAddress as registr38_6_0_,
        user1_.timeZone as timeZone6_0_,
        user1_.timeZoneGroup as timeZon40_6_0_,
        user1_.userAdmin as userAdmin6_0_,
        user1_.userName as userName6_0_,
        user2_.id as id6_1_,
        user2_.createUser as createUser6_1_,
        user2_.created as created6_1_,
        user2_.entityState as entitySt3_6_1_,
        user2_.updateUser as updateUser6_1_,
        user2_.updated as updated6_1_,
        user2_.version as version6_1_,
        user2_.agreedTerms as agreedTe6_6_1_,
        user2_.browserType as browserT7_6_1_,
        user2_.country as country6_1_,
        user2_.dateFormat as dateFormat6_1_,
        user2_.defaultPlayer as default45_6_1_,
        user2_.dob as dob6_1_,
        user2_.email as email6_1_,
        user2_.emailVerified as emailVe12_6_1_,
        user2_.firstName as firstName6_1_,
        user2_.gender as gender6_1_,
        user2_.groupName as groupName6_1_,
        user2_.addrCountry as addrCou16_6_1_,
        user2_.addrCounty as addrCounty6_1_,
        user2_.addrGeoStatus as addrGeo18_6_1_,
        user2_.addrLat as addrLat6_1_,
        user2_.addrLine1 as addrLine20_6_1_,
        user2_.addrLine2 as addrLine21_6_1_,
        user2_.addrLng as addrLng6_1_,
        user2_.addrPostCode as addrPos23_6_1_,
        user2_.addrTownCity as addrTow24_6_1_,
        user2_.lastLoginFailureIpAddress as lastLog25_6_1_,
        user2_.lastLoginIpAddress as lastLog26_6_1_,
        user2_.lastLoginTime as lastLog27_6_1_,
        user2_.lastName as lastName6_1_,
        user2_.loginCount as loginCount6_1_,
        user2_.loginFailures as loginFa30_6_1_,
        user2_.middleInitial as middleI31_6_1_,
        user2_.mobileSecurityCode as mobileS32_6_1_,
        user2_.mobileVerified as mobileV33_6_1_,
        user2_.passWord as passWord6_1_,
        user2_.phoneHome as phoneHome6_1_,
        user2_.phoneMobile as phoneMo36_6_1_,
        user2_.regRandomNumber as regRand37_6_1_,
        user2_.registrationIpAddress as registr38_6_1_,
        user2_.timeZone as timeZone6_1_,
        user2_.timeZoneGroup as timeZon40_6_1_,
        user2_.userAdmin as userAdmin6_1_,
        user2_.userName as userName6_1_,
        user3_.id as id6_2_,
        user3_.createUser as createUser6_2_,
        user3_.created as created6_2_,
        user3_.entityState as entitySt3_6_2_,
        user3_.updateUser as updateUser6_2_,
        user3_.updated as updated6_2_,
        user3_.version as version6_2_,
        user3_.agreedTerms as agreedTe6_6_2_,
        user3_.browserType as browserT7_6_2_,
        user3_.country as country6_2_,
        user3_.dateFormat as dateFormat6_2_,
        user3_.defaultPlayer as default45_6_2_,
        user3_.dob as dob6_2_,
        user3_.email as email6_2_,
        user3_.emailVerified as emailVe12_6_2_,
        user3_.firstName as firstName6_2_,
        user3_.gender as gender6_2_,
        user3_.groupName as groupName6_2_,
        user3_.addrCountry as addrCou16_6_2_,
        user3_.addrCounty as addrCounty6_2_,
        user3_.addrGeoStatus as addrGeo18_6_2_,
        user3_.addrLat as addrLat6_2_,
        user3_.addrLine1 as addrLine20_6_2_,
        user3_.addrLine2 as addrLine21_6_2_,
        user3_.addrLng as addrLng6_2_,
        user3_.addrPostCode as addrPos23_6_2_,
        user3_.addrTownCity as addrTow24_6_2_,
        user3_.lastLoginFailureIpAddress as lastLog25_6_2_,
        user3_.lastLoginIpAddress as lastLog26_6_2_,
        user3_.lastLoginTime as lastLog27_6_2_,
        user3_.lastName as lastName6_2_,
        user3_.loginCount as loginCount6_2_,
        user3_.loginFailures as loginFa30_6_2_,
        user3_.middleInitial as middleI31_6_2_,
        user3_.mobileSecurityCode as mobileS32_6_2_,
        user3_.mobileVerified as mobileV33_6_2_,
        user3_.passWord as passWord6_2_,
        user3_.phoneHome as phoneHome6_2_,
        user3_.phoneMobile as phoneMo36_6_2_,
        user3_.regRandomNumber as regRand37_6_2_,
        user3_.registrationIpAddress as registr38_6_2_,
        user3_.timeZone as timeZone6_2_,
        user3_.timeZoneGroup as timeZon40_6_2_,
        user3_.userAdmin as userAdmin6_2_,
        user3_.userName as userName6_2_,
        player4_.id as id0_3_,
        player4_1_.createUser as createUser0_3_,
        player4_1_.created as created0_3_,
        player4_1_.entityState as entitySt3_0_3_,
        player4_1_.updateUser as updateUser0_3_,
        player4_1_.updated as updated0_3_,
        player4_1_.version as version0_3_,
        player4_1_.ageGroup as ageGroup0_3_,
        player4_1_.ageGroupNickname as ageGroup7_0_3_,
        player4_1_.country as country0_3_,
        player4_1_.currentSeason as current16_0_3_,
        player4_1_.dtype as dtype0_3_,
        player4_1_.introNotes as introNotes0_3_,
        player4_1_.mainLocation as mainLoc17_0_3_,
        player4_1_.name as name0_3_,
        player4_1_.photoId as photoId0_3_,
        player4_1_.sport as sport0_3_,
        player4_.birthCertificate as birthCer1_1_3_,
        player4_.defaultPlayer as defaultP2_1_3_,
        player4_.dob as dob1_3_,
        player4_.email as email1_3_,
        player4_.firstName as firstName1_3_,
        player4_.lastName as lastName1_3_,
        player4_.middleInitial as middleIn7_1_3_,
        player4_.photo as photo1_3_,
        player4_.user as user1_3_,
        user5_.id as id6_4_,
        user5_.createUser as createUser6_4_,
        user5_.created as created6_4_,
        user5_.entityState as entitySt3_6_4_,
        user5_.updateUser as updateUser6_4_,
        user5_.updated as updated6_4_,
        user5_.version as version6_4_,
        user5_.agreedTerms as agreedTe6_6_4_,
        user5_.browserType as browserT7_6_4_,
        user5_.country as country6_4_,
        user5_.dateFormat as dateFormat6_4_,
        user5_.defaultPlayer as default45_6_4_,
        user5_.dob as dob6_4_,
        user5_.email as email6_4_,
        user5_.emailVerified as emailVe12_6_4_,
        user5_.firstName as firstName6_4_,
        user5_.gender as gender6_4_,
        user5_.groupName as groupName6_4_,
        user5_.addrCountry as addrCou16_6_4_,
        user5_.addrCounty as addrCounty6_4_,
        user5_.addrGeoStatus as addrGeo18_6_4_,
        user5_.addrLat as addrLat6_4_,
        user5_.addrLine1 as addrLine20_6_4_,
        user5_.addrLine2 as addrLine21_6_4_,
        user5_.addrLng as addrLng6_4_,
        user5_.addrPostCode as addrPos23_6_4_,
        user5_.addrTownCity as addrTow24_6_4_,
        user5_.lastLoginFailureIpAddress as lastLog25_6_4_,
        user5_.lastLoginIpAddress as lastLog26_6_4_,
        user5_.lastLoginTime as lastLog27_6_4_,
        user5_.lastName as lastName6_4_,
        user5_.loginCount as loginCount6_4_,
        user5_.loginFailures as loginFa30_6_4_,
        user5_.middleInitial as middleI31_6_4_,
        user5_.mobileSecurityCode as mobileS32_6_4_,
        user5_.mobileVerified as mobileV33_6_4_,
        user5_.passWord as passWord6_4_,
        user5_.phoneHome as phoneHome6_4_,
        user5_.phoneMobile as phoneMo36_6_4_,
        user5_.regRandomNumber as regRand37_6_4_,
        user5_.registrationIpAddress as registr38_6_4_,
        user5_.timeZone as timeZone6_4_,
        user5_.timeZoneGroup as timeZon40_6_4_,
        user5_.userAdmin as userAdmin6_4_,
        user5_.userName as userName6_4_,
        season6_.id as id2_5_,
        season6_.createUser as createUser2_5_,
        season6_.created as created2_5_,
        season6_.entityState as entitySt3_2_5_,
        season6_.updateUser as updateUser2_5_,
        season6_.updated as updated2_5_,
        season6_.version as version2_5_,
        season6_.arriveBeforeMins as arriveBe6_2_5_,
        season6_.earliestHours as earliest7_2_5_,
        season6_.earliestMins as earliest8_2_5_,
        season6_.encodedDaysOfWeek as encodedD9_2_5_,
        season6_.endDate as endDate2_5_,
        season6_.extraTime as extraTime2_5_,
        season6_.latestHours as latestH12_2_5_,
        season6_.latestMins as latestMins2_5_,
        season6_.league as league2_5_,
        season6_.matchDuration as matchDu14_2_5_,
        season6_.season as season2_5_,
        season6_.startDate as startDate2_5_,
        user7_.id as id6_6_,
        user7_.createUser as createUser6_6_,
        user7_.created as created6_6_,
        user7_.entityState as entitySt3_6_6_,
        user7_.updateUser as updateUser6_6_,
        user7_.updated as updated6_6_,
        user7_.version as version6_6_,
        user7_.agreedTerms as agreedTe6_6_6_,
        user7_.browserType as browserT7_6_6_,
        user7_.country as country6_6_,
        user7_.dateFormat as dateFormat6_6_,
        user7_.defaultPlayer as default45_6_6_,
        user7_.dob as dob6_6_,
        user7_.email as email6_6_,
        user7_.emailVerified as emailVe12_6_6_,
        user7_.firstName as firstName6_6_,
        user7_.gender as gender6_6_,
        user7_.groupName as groupName6_6_,
        user7_.addrCountry as addrCou16_6_6_,
        user7_.addrCounty as addrCounty6_6_,
        user7_.addrGeoStatus as addrGeo18_6_6_,
        user7_.addrLat as addrLat6_6_,
        user7_.addrLine1 as addrLine20_6_6_,
        user7_.addrLine2 as addrLine21_6_6_,
        user7_.addrLng as addrLng6_6_,
        user7_.addrPostCode as addrPos23_6_6_,
        user7_.addrTownCity as addrTow24_6_6_,
        user7_.lastLoginFailureIpAddress as lastLog25_6_6_,
        user7_.lastLoginIpAddress as lastLog26_6_6_,
        user7_.lastLoginTime as lastLog27_6_6_,
        user7_.lastName as lastName6_6_,
        user7_.loginCount as loginCount6_6_,
        user7_.loginFailures as loginFa30_6_6_,
        user7_.middleInitial as middleI31_6_6_,
        user7_.mobileSecurityCode as mobileS32_6_6_,
        user7_.mobileVerified as mobileV33_6_6_,
        user7_.passWord as passWord6_6_,
        user7_.phoneHome as phoneHome6_6_,
        user7_.phoneMobile as phoneMo36_6_6_,
        user7_.regRandomNumber as regRand37_6_6_,
        user7_.registrationIpAddress as registr38_6_6_,
        user7_.timeZone as timeZone6_6_,
        user7_.timeZoneGroup as timeZon40_6_6_,
        user7_.userAdmin as userAdmin6_6_,
        user7_.userName as userName6_6_,
        user8_.id as id6_7_,
        user8_.createUser as createUser6_7_,
        user8_.created as created6_7_,
        user8_.entityState as entitySt3_6_7_,
        user8_.updateUser as updateUser6_7_,
        user8_.updated as updated6_7_,
        user8_.version as version6_7_,
        user8_.agreedTerms as agreedTe6_6_7_,
        user8_.browserType as browserT7_6_7_,
        user8_.country as country6_7_,
        user8_.dateFormat as dateFormat6_7_,
        user8_.defaultPlayer as default45_6_7_,
        user8_.dob as dob6_7_,
        user8_.email as email6_7_,
        user8_.emailVerified as emailVe12_6_7_,
        user8_.firstName as firstName6_7_,
        user8_.gender as gender6_7_,
        user8_.groupName as groupName6_7_,
        user8_.addrCountry as addrCou16_6_7_,
        user8_.addrCounty as addrCounty6_7_,
        user8_.addrGeoStatus as addrGeo18_6_7_,
        user8_.addrLat as addrLat6_7_,
        user8_.addrLine1 as addrLine20_6_7_,
        user8_.addrLine2 as addrLine21_6_7_,
        user8_.addrLng as addrLng6_7_,
        user8_.addrPostCode as addrPos23_6_7_,
        user8_.addrTownCity as addrTow24_6_7_,
        user8_.lastLoginFailureIpAddress as lastLog25_6_7_,
        user8_.lastLoginIpAddress as lastLog26_6_7_,
        user8_.lastLoginTime as lastLog27_6_7_,
        user8_.lastName as lastName6_7_,
        user8_.loginCount as loginCount6_7_,
        user8_.loginFailures as loginFa30_6_7_,
        user8_.middleInitial as middleI31_6_7_,
        user8_.mobileSecurityCode as mobileS32_6_7_,
        user8_.mobileVerified as mobileV33_6_7_,
        user8_.passWord as passWord6_7_,
        user8_.phoneHome as phoneHome6_7_,
        user8_.phoneMobile as phoneMo36_6_7_,
        user8_.regRandomNumber as regRand37_6_7_,
        user8_.registrationIpAddress as registr38_6_7_,
        user8_.timeZone as timeZone6_7_,
        user8_.timeZoneGroup as timeZon40_6_7_,
        user8_.userAdmin as userAdmin6_7_,
        user8_.userName as userName6_7_,
        league9_.id as id0_8_,
        league9_1_.createUser as createUser0_8_,
        league9_1_.created as created0_8_,
        league9_1_.entityState as entitySt3_0_8_,
        league9_1_.updateUser as updateUser0_8_,
        league9_1_.updated as updated0_8_,
        league9_1_.version as version0_8_,
        league9_1_.ageGroup as ageGroup0_8_,
        league9_1_.ageGroupNickname as ageGroup7_0_8_,
        league9_1_.country as country0_8_,
        league9_1_.currentSeason as current16_0_8_,
        league9_1_.dtype as dtype0_8_,
        league9_1_.introNotes as introNotes0_8_,
        league9_1_.mainLocation as mainLoc17_0_8_,
        league9_1_.name as name0_8_,
        league9_1_.photoId as photoId0_8_,
        league9_1_.sport as sport0_8_,
        league9_.leagueGroup as leagueGr6_25_8_,
        league9_.leagueTable as leagueTa7_25_8_,
        league9_.pointsDraw as pointsDraw25_8_,
        league9_.pointsLoss as pointsLoss25_8_,
        league9_.pointsWin as pointsWin25_8_,
        league9_.splitter as splitter25_8_,
        location10_.id as id0_9_,
        location10_1_.createUser as createUser0_9_,
        location10_1_.created as created0_9_,
        location10_1_.entityState as entitySt3_0_9_,
        location10_1_.updateUser as updateUser0_9_,
        location10_1_.updated as updated0_9_,
        location10_1_.version as version0_9_,
        location10_1_.ageGroup as ageGroup0_9_,
        location10_1_.ageGroupNickname as ageGroup7_0_9_,
        location10_1_.country as country0_9_,
        location10_1_.currentSeason as current16_0_9_,
        location10_1_.dtype as dtype0_9_,
        location10_1_.introNotes as introNotes0_9_,
        location10_1_.mainLocation as mainLoc17_0_9_,
        location10_1_.name as name0_9_,
        location10_1_.photoId as photoId0_9_,
        location10_1_.sport as sport0_9_,
        location10_.addrCountry as addrCoun1_13_9_,
        location10_.addrCounty as addrCounty13_9_,
        location10_.addrGeoStatus as addrGeoS3_13_9_,
        location10_.addrLat as addrLat13_9_,
        location10_.addrLine1 as addrLine5_13_9_,
        location10_.addrLine2 as addrLine6_13_9_,
        location10_.addrLng as addrLng13_9_,
        location10_.addrPostCode as addrPost8_13_9_,
        location10_.addrTownCity as addrTown9_13_9_,
        location10_.comments as comments13_9_,
        location10_.entity as entity13_9_,
        location10_.globalx as globalx13_9_,
        location10_.locationType as locatio12_13_9_,
        location10_.user as user13_9_,
        superentit11_.id as id0_10_,
        superentit11_.createUser as createUser0_10_,
        superentit11_.created as created0_10_,
        superentit11_.entityState as entitySt3_0_10_,
        superentit11_.updateUser as updateUser0_10_,
        superentit11_.updated as updated0_10_,
        superentit11_.version as version0_10_,
        superentit11_.ageGroup as ageGroup0_10_,
        superentit11_.ageGroupNickname as ageGroup7_0_10_,
        ... deleted due to over stackoverflow post limit ...
        user12_.agreedTerms as agreedTe6_6_11_,
        user12_.browserType as browserT7_6_11_,
        user12_.country as country6_11_,
        user12_.dateFormat as dateFormat6_11_,
        user12_.defaultPlayer as default45_6_11_,
        user12_.dob as dob6_11_,
        user12_.email as email6_11_,
        user12_.emailVerified as emailVe12_6_11_,
        user12_.firstName as firstName6_11_,
        user12_.gender as gender6_11_,
        user12_.groupName as groupName6_11_,
        user12_.addrCountry as addrCou16_6_11_,
        user12_.addrCounty as addrCounty6_11_,
        user12_.addrGeoStatus as addrGeo18_6_11_,
        user12_.addrLat as addrLat6_11_,
        user12_.addrLine1 as addrLine20_6_11_,
        user12_.addrLine2 as addrLine21_6_11_,
        user12_.addrLng as addrLng6_11_,
        user12_.addrPostCode as addrPos23_6_11_,
        user12_.addrTownCity as addrTow24_6_11_,
        user12_.lastLoginFailureIpAddress as lastLog25_6_11_,
        user12_.lastLoginIpAddress as lastLog26_6_11_,
        user12_.lastLoginTime as lastLog27_6_11_,
        user12_.lastName as lastName6_11_,
        user12_.loginCount as loginCount6_11_,
        user12_.loginFailures as loginFa30_6_11_,
        user12_.middleInitial as middleI31_6_11_,
        user12_.mobileSecurityCode as mobileS32_6_11_,
        user12_.mobileVerified as mobileV33_6_11_,
        user12_.passWord as passWord6_11_,
        user12_.phoneHome as phoneHome6_11_,
        user12_.phoneMobile as phoneMo36_6_11_,
        user12_.regRandomNumber as regRand37_6_11_,
        user12_.registrationIpAddress as registr38_6_11_,
        user12_.timeZone as timeZone6_11_,
        user12_.timeZoneGroup as timeZon40_6_11_,
        user12_.userAdmin as userAdmin6_11_,
        user12_.userName as userName6_11_,
        user13_.id as id6_12_,
        user13_.createUser as createUser6_12_,
        user13_.created as created6_12_,
        user13_.entityState as entitySt3_6_12_,
        user13_.updateUser as updateUser6_12_,
        user13_.updated as updated6_12_,
        user13_.version as version6_12_,
        user13_.agreedTerms as agreedTe6_6_12_,
        user13_.browserType as browserT7_6_12_,
        user13_.country as country6_12_,
        user13_.dateFormat as dateFormat6_12_,
        user13_.defaultPlayer as default45_6_12_,
        user13_.dob as dob6_12_,
        user13_.email as email6_12_,
        user13_.emailVerified as emailVe12_6_12_,
        user13_.firstName as firstName6_12_,
        user13_.gender as gender6_12_,
        user13_.groupName as groupName6_12_,
        user13_.addrCountry as addrCou16_6_12_,
        user13_.addrCounty as addrCounty6_12_,
        user13_.addrGeoStatus as addrGeo18_6_12_,
        user13_.addrLat as addrLat6_12_,
        user13_.addrLine1 as addrLine20_6_12_,
        user13_.addrLine2 as addrLine21_6_12_,
        user13_.addrLng as addrLng6_12_,
        user13_.addrPostCode as addrPos23_6_12_,
        user13_.addrTownCity as addrTow24_6_12_,
        user13_.lastLoginFailureIpAddress as lastLog25_6_12_,
        user13_.lastLoginIpAddress as lastLog26_6_12_,
        user13_.lastLoginTime as lastLog27_6_12_,
        user13_.lastName as lastName6_12_,
        user13_.loginCount as loginCount6_12_,
        user13_.loginFailures as loginFa30_6_12_,
        user13_.middleInitial as middleI31_6_12_,
        user13_.mobileSecurityCode as mobileS32_6_12_,
        user13_.mobileVerified as mobileV33_6_12_,
        user13_.passWord as passWord6_12_,
        user13_.phoneHome as phoneHome6_12_,
        user13_.phoneMobile as phoneMo36_6_12_,
        user13_.regRandomNumber as regRand37_6_12_,
        user13_.registrationIpAddress as registr38_6_12_,
        user13_.timeZone as timeZone6_12_,
        user13_.timeZoneGroup as timeZon40_6_12_,
        user13_.userAdmin as userAdmin6_12_,
        user13_.userName as userName6_12_ 
    from
        players player0_ 
    inner join
        superentities player0_1_ 
            on player0_.id=player0_1_.id 
    inner join
        users user1_ 
            on player0_1_.createUser=user1_.id 
    left outer join
        users user2_ 
            on user1_.createUser=user2_.id 
    left outer join
        users user3_ 
            on user1_.updateUser=user3_.id 
    left outer join
        players player4_ 
            on user1_.defaultPlayer=player4_.id 
    left outer join
        superentities player4_1_ 
            on player4_.id=player4_1_.id 
    inner join
        users user5_ 
            on player0_1_.updateUser=user5_.id 
    left outer join
        seasons season6_ 
            on player0_1_.currentSeason=season6_.id 
    left outer join
        users user7_ 
            on season6_.createUser=user7_.id 
    left outer join
        users user8_ 
            on season6_.updateUser=user8_.id 
    left outer join
        leagues league9_ 
            on season6_.league=league9_.id 
    left outer join
        superentities league9_1_ 
            on league9_.id=league9_1_.id 
    left outer join
        locations location10_ 
            on player0_1_.mainLocation=location10_.id 
    left outer join
        superentities location10_1_ 
            on location10_.id=location10_1_.id 
    left outer join
        superentities superentit11_ 
            on location10_.entity=superentit11_.id 
    left outer join
        players superentit11_1_ 
            on superentit11_.id=superentit11_1_.id 
    left outer join
        clubs superentit11_2_ 
            on superentit11_.id=superentit11_2_.id 
    left outer join
        squads superentit11_3_ 
            on superentit11_.id=superentit11_3_.id 
    left outer join
        businesses superentit11_4_ 
            on superentit11_.id=superentit11_4_.id 
    left outer join
        locations superentit11_5_ 
            on superentit11_.id=superentit11_5_.id 
    left outer join
        resources superentit11_6_ 
            on superentit11_.id=superentit11_6_.id 
    left outer join
        sportscentres superentit11_7_ 
            on superentit11_.id=superentit11_7_.id 
    left outer join
        leagues superentit11_8_ 
            on superentit11_.id=superentit11_8_.id 
    left outer join
        leaguegroups superentit11_9_ 
            on superentit11_.id=superentit11_9_.id 
    left outer join
        teams superentit11_10_ 
            on superentit11_.id=superentit11_10_.id 
    left outer join
        users user12_ 
            on location10_.user=user12_.id 
    inner join
        users user13_ 
            on player0_.user=user13_.id 
    where
        player0_.id=1
4

1 に答える 1

1

クエリは、熱心に読み込まれるようにマップされている OnetoOne または ManyToOne アソシエーションがたくさんあることを示しているようです (残念ながら、これはデフォルトです)。そのため、Hibernate はそれらを積極的にロードします。

たとえば、ユーザーが別のユーザーを参照し、別のユーザーが別のユーザーを参照しているように見えますが、この関連付けは遅延ロードされていません。

また、すべてのエンティティが共通のスーパー エンティティから継承されているようです。これはおそらく間違っています。ビジネスとプレーヤーは同じ種類のエンティティではなく、同じエンティティ階層にあるべきではありません。commen エンティティは、おそらく MappedSuperclass に置き換える必要があります。

于 2012-07-21T15:51:00.993 に答える