Hibernate FetchMode SELECT vs JOIN -


i have following class:

   @entity public class testcontentelementresponse {      @id     @generatedvalue(strategy = generationtype.auto)     protected long id;        @onetomany(mappedby = "testcontentelementresponse", cascade = cascadetype.all, orphanremoval = false)     private set<responseattribute> associatedresponseattributes = new hashset<responseattribute>();       @manytoone     @joincolumn(name = "userfulltestid", referencedcolumnname = "id", nullable = false)     private userfulltest userfulltest;      @manytoone     @joincolumn(name = "testcontentelementid", referencedcolumnname = "id", nullable = false)     private testcontentelement testcontentelement;        @onetoone(cascade = cascadetype.all)     private testcontentelementscore testcontentelementscore;      @manytoone     @joincolumn(name = "userid", referencedcolumnname = "id", nullable = false)     private user user; 

testcontentelementresponse.class represents 1 user response in test. 1 test can 30 questions, 30 responses per user.

now want call testcontentelementresponse 1 user (common id userfulltestid) , responseattributes each testcontentelementresponse.

i can criteria query, not sure whether use select or join fetchmode. understand join make 1 big call database , select make many rapid calls. however, not know factors me decide method optimum.

(of course, run tests, answer method optimum, won't explain why)

help appreciated

here excellent discussion, concrete examples:

http://www.mkyong.com/hibernate/hibernate-fetching-strategies-examples/

if coding in "raw sql" (either sql statements or stored procedures), answer no-brainer: single complex "select/join" query preferred multiple queries.

as far hibernate, answer "join" usually better select.

suggestion: modify spring.xml enable "show_sql", , compare results.

ps:

two other links:


Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -