String sql = "from User u left join u.card";
只需要指定本身用于连接的字段,具体连接到哪个表是在实体类中配置好了的


    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)
    @JoinColumn(name="card_id",referencedColumnName="name")
    public Set<Card> getCard() {
        return card;
    }

 



public void testHQL(){
        SessionFactory sessionFactory = new AnnotationConfiguration().configure("com/lesson4/lesson4.cfg.xml").buildSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        
        try {
            String sql = "from User u left join u.card";
            Query query = session.createQuery(sql);
        
            List<User> list = query.list();
            
            for (User u: list){
                System.out.println(u.getName());
            }
            
            
            tx.commit();
        } catch (Exception e) {
            tx.rollback();
            
            e.printStackTrace();
        }finally{
            session.close();
        }
    }