您好我有一個如下定義的namedquery,但是當我執行它時,它會重新調整整個對象而不僅僅是我請求的字段。當我只想返回該對象的一列時,是否有我缺少的東西。在此先感謝NamedQuery返回對象而不是列
@NamedQueries ({
@NamedQuery(
name="findSubmissionForSubmissionRowUniqueBankId",
query="SELECT o.submission FROM SubmissionRow o WHERE o.uniqueBankId = :uniqueBankId",
hints={@QueryHint(name=QueryHints.CACHE_USAGE, value=CacheUsage.CheckCacheThenDatabase),
@QueryHint(name=QueryHints.QUERY_RESULTS_CACHE_SIZE, value="1000"),
@QueryHint(name=QueryHints.QUERY_RESULTS_CACHE_EXPIRY, value="18000")
})
})
它excecutes這個查詢的SQL是
EJBQueryImpl(ReadObjectQuery(name="findSubmissionForSubmissionRowUniqueBankId" referenceClass=SubmissionRow sql="SELECT ID, ARCHIVE_BANK_ID, EXTERNAL_SOURCE_DETAILS,UNIQUE_BANK_ID, SUBMISSION_ID FROM FE_TEST.SUBMISSION_ROW WHERE (UNIQUE_BANK_ID = ?)"))
我已經定義了加入成爲folllows
@ManyToOne
@JoinColumn(name = "SUBMISSION_ID", referencedColumnName = "ID")
private Submission submission;
我明白'o.submission'是一個bean,而不是一個原始類型/字符串/日期,是嗎?在這種情況下,您將按照要求獲得「提交」對象(稍後您可以從其屬性獲取該ID)。也許你可以嘗試'o.submission.id',如果這是你想要的。 – SJuan76 2013-05-07 10:42:59
是提交是一個bean,但即使我試圖獲得一個非bean屬性,它仍然返回整個submissionrow對象,而不僅僅是那個porperty – user1107753 2013-05-07 11:22:12
你試過'SELECT o.submission.theProperty ...'? – SJuan76 2013-05-07 11:36:12