Hello, voilà je viens poster parce que je commence à me prendre sérieusement la tête ^^
Je suis en train d'optimiser mon applic et je suis tombé sur un problème que je n'arrive pas à résoudre...
Soit ce mapping pour Phone:
J'écris un test unitaire et je l'exécute avec le show_sql à true juste pour voir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 ... <class name="Phone" table="ACTOR_PHONE"> <id name="id" column="ID" type="long"> <generator class="native"> <param name="sequence">PH_SEQUENCE</param> </generator> </id> <many-to-one name="actor" class="Actor" column="ACTOR_ID" not-null="true" foreign-key="ACT_PH_FK"/> <many-to-one name="declaration" column="DECLARATION_ID" class="be.xxx.yyy.core.data.model.file.Declaration" foreign-key="DECL_PH_FK" /> ...
bon, le test est bizarre mais c'est ciblé, je sais qu'en faisant 'actor.getPhones().iterator;' je reproduis le problème donc pas besoin d'aller plus loin ;p
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Actor actor = (Actor) this.commonDao.get(Actor.class, new long(78581)); actor.getPhones().iterator;
Et le problème c'est, que qd je fais ça il me génère ceci comme SQL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Hibernate: select phones0_.actor_id as actor2_1_, phones0_.ID as ID1_, phones0_.ID as ID12_0_, phones0_.ACTOR_ID as ACTOR2_12_0_, phones0_.DECLARATION_ID as DECLARAT3_12_0_, phones0_.COUNTRY_CODE as COUNTRY4_12_0_, phones0_.PHONE_NUM as PHONE5_12_0_, phones0_.PHONE_CODE as PHONE6_12_0_, phones0_.START_DATE as START7_12_0_, phones0_.END_DATE as END8_12_0_ from ACTOR_PHONE phones0_ where phones0_.actor_id=? Hibernate: select declaratio0_.FILE_ID as ID25_0_, declaratio0_1_.FILE_TYPE_CODE as FILE2_25_0_, declaratio0_1_.INTEGRATED_FILE_ID as INTEGRATED3_25_0_, declaratio0_1_.STATUS_FCH_TYPE_CODE as STATUS4_25_0_, declaratio0_1_.START_DATE as START5_25_0_, declaratio0_1_.END_DATE as END6_25_0_, declaratio0_.DECLARATION_NUM as DECLARAT2_31_0_, declaratio0_.PROJ_TYPE_CODE as PROJ3_31_0_, declaratio0_.BUILD_START_DATE as BUILD4_31_0_, declaratio0_.BUILD_END_DATE as BUILD5_31_0_, declaratio0_.STREET_LNM as STREET6_31_0_, declaratio0_.STREET_NUM as STREET7_31_0_, declaratio0_.STREET_BOX_SHN as STREET8_31_0_, declaratio0_.POSTCODE as POSTCODE31_0_, declaratio0_.CITY_LNM as CITY10_31_0_, declaratio0_.ORDERER_PHYSICAL_IND as ORDERER11_31_0_, declaratio0_.FICTION_IND as FICTION12_31_0_, declaratio0_.REGISTER_NUM as REGISTER13_31_0_, declaratio0_.COMP_INFOS_DESC as COMP14_31_0_, declaratio0_.MOBIL_IND as MOBIL15_31_0_ from FILE_DECLARATION declaratio0_ inner join FILES declaratio0_1_ on declaratio0_.FILE_ID=declaratio0_1_.ID where declaratio0_.FILE_ID=?
La première requête ok mais la seconde ne devrait pas être exécutée car je n'accède pas à la déclaration et que celle-ci est normalement 'proxyfiée'...!
donc voila, si quelqu'un a un idée... :-)
Merci
Partager