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
Post a Comment