Talbeの結合時、複数Tableでカラムが衝突する場合

どうしよーと思っていましたができました。Select文の中で別名つけてBeanのプロパティと合わせればいいだけなのか。

SQL:2つのTableにPRICEがある。これを結合して1つBeanに詰めたい

create table PRODUCT (
	NAME varchar(20) not null primary key,
	PRICE numeric(10,0)
);
create table SALES (
	PRODUCTNAME varchar(20) not null primary key,
	PRICE numeric(10,0),
	SALESDATE TIMESTAMP
);

insert into PRODUCT values('TV_A', 500000);
insert into PRODUCT values('TV_B', 600000);
insert into PRODUCT values('TV_C', 700000);
insert into SALES values('TV_A', 450000, '2005-03-03');
insert into SALES values('TV_B', 550000, '2005-03-10');

ProductSales:PRODUCTテーブルとSALESテーブルを結合して得られる値をつめるBean。PRICEカラムが衝突するがそれぞれ別名にする。COLUMNアノテーション使ってもいいはず

package hoge;

import java.math.BigDecimal;
import java.util.Date;

public class ProductSales {
    
    private String name;
    
    private BigDecimal unitPrice;
        
    private BigDecimal salesPrice;
    
    private Date salesDate;    

    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public Date getSalesDate() {
        return salesDate;
    }
    
    public void setSalesDate(Date salesDate) {
        this.salesDate = salesDate;
    }
    
    public BigDecimal getSalesPrice() {
        return salesPrice;
    }
    
    public void setSalesPrice(BigDecimal salesPrice) {
        this.salesPrice = salesPrice;
    }
    
    public BigDecimal getUnitPrice() {
        return unitPrice;
    }
    
    public void setUnitPrice(BigDecimal unitPrice) {
        this.unitPrice = unitPrice;
    }
       
    public String toString() {
        return new StringBuffer()
                .append("[")
                .append(name).append(", ")
                .append(unitPrice).append(", ")
                .append(salesPrice).append(", ")
                .append(salesDate).append(", ")
                .append("]")
                .toString();
    }
}

ProductSalesDao

package hoge;

import java.util.List;

public interface ProductSalesDao {
    
    public static final Class BEAN = ProductSales.class;
    
    public List getAllProductSales();
}

ProductSalesDao_getAllProductSales.sql:PRICEカラムにそれぞれ別名をつける。Beanに指定した名前と合わせる

SELECT A.name, A.price as unitprice , B.price as salesprice, B.salesdate 
FROM PRODUCT A LEFT OUTER JOIN SALES B ON(A.name = B.productname);