鍍金池/ 問答/Java  數據庫/ 關于BeanListHandler的問題

關于BeanListHandler的問題

product(商品)是一個javabean,類里面的成員變量包含了另一個Javabean,即category(商品種類),可是我的數據庫product表中存放的是cid(商品種類的標識)而不是商品種類,在后臺dao層向數據庫要數據的時候使用了beanlisthandler對象,仍然能夠封裝成完整的product對象,請問這是為什么?

相關代碼

//
product類

private String pid;
private String pname;
private double market_price;
private double shop_price;
private String pimage;
private Date pdate;
private int is_hot;
private String pdesc;
private int pflag;
private Category category;

category類

private String cid;
private String cname;

dao層代碼

public List<Product> findHotProductList() throws SQLException {
    QueryRunner runner=new QueryRunner(DataSourceUtils.getDataSource());
    String sql="select * from product where is_hot =? limit ?,?";
    return runner.query(sql, new BeanListHandler<Product>(Product.class), 1,0,9);
}

clipboard.png
這是我的product表

為什么在訪問數據庫時候可以通過cid就能封裝成完整的product對象?

回答
編輯回答
忘了我

對于實體管理器而言,它發(fā)現(xiàn) Product.category 是個同樣注冊為實體的 Category 類型,而這個類型的主鍵是 cid,因此它就能知道查詢結果中 cid 對應的是 category 表的主鍵。

2018年6月27日 18:13