@Entity
@Table(name = "BOOKTEST")
@NamedQueries({@NamedQuery(name = "Booktest.findAll", query = "SELECT b FROM Booktest b"), @NamedQuery(name = "Booktest.findById", query = "SELECT b FROM Booktest b WHERE b.id = :id"), @NamedQuery(name = "Booktest.findByBookName", query = "SELECT b FROM Booktest b WHERE b.bookName = :bookName")})
public class Booktest implements Serializable {
@ManyToOne
private Topictest topictestId; //foreign key
@JoinColumn(name = "USERTEST_ID", referencedColumnName = "ID")
@ManyToOne
private Usertest usertestId; //foreign key
}
当我执行hibernate如何创建createalias左连接?
session.createCriteria(Booktest.class).createAlias( “usertestId”, “usertestId”,Criteria.LEFT_JOIN) .LIST();
的SQL_LOG仍呈现SELECT * FROM booktest,usertest而不是SELECT * FROM booktest左连接usertest做剩下多少加入?
试图不sequitor这两种情况下,我仍然得到以下没有“左连接”
Hibernate: select this_.ID as ID13_2_, this_.BOOK_NAME as BOOK2_13_2_, this_.TOP
ICTEST_ID as TOPICTEST4_13_2_, this_.USERTEST_ID as USERTEST3_13_2_, usertestid1
_.ID as ID14_0_, usertestid1_.TOPIC_NAME as TOPIC2_14_0_, usertest4_.ID as ID15_
1_, usertest4_.USER_NAME as USER2_15_1_ from BOOKTEST this_, TOPICTEST usertesti
d1_, USERTEST usertest4_ where this_.TOPICTEST_ID=usertestid1_.ID and this_.USER
TEST_ID=usertest4_.ID(+)
不sequitor,请看看我上面的结果,仍然没有 “左连接” – cometta 2009-11-03 03:03:51
了'(+)'使其成为一个'左join'请参见http:// WWW .dba-oracle.com/tips_oracle_left_outer_join.htm您必须使用Oracle 8i – 2009-11-03 04:18:55
,因为它使用ws oracledialect进行休眠。我改成了oracle9dialect。现在可以。 – cometta 2009-11-03 04:26:56