日期:2014-05-20  浏览次数:20613 次

若一个类中有个component,该类的构造函数该怎么定义?
大概就是这样:
public class BuyMedList implements Serializable {
// primary key
private java.lang.Integer id;

// fields
private java.lang.Integer buyAmount;
private java.lang.Integer saleAmount;
private java.lang.Integer brokenAmount;
private java.lang.Double payMoney;
private java.lang.Double earnMoney;
private java.util.Date buyTime;
private java.util.Date saleTime;

// components
 cn.edu.jxcms.model.Medicines medicines;

}


public class Medicines implements Serializable {
// fields
private java.lang.String medId;
private java.lang.String medName;
private java.lang.String packing;
private java.lang.Double buyPrice;
private java.lang.Double salePrice;
private java.util.Date proDate;
private java.util.Date valDate;
}
Medicines 是 BuyMedList 的组件,现在我只想初始化BuyMedList的(id, buyAmount, payMoney, payTime)以及Medicines 的(medId, medName, packing, buyPrice, salePrice),
请问:1.我想获取的这些字段的hql语句该怎么写?
      2.不是应该自定义一个BuyMedList的构造函数么,该如何定义?
hql components

------解决方案--------------------
哦哦,,之前可能没有看清楚,,,你这样子 不可行的。。。因为涉及的关联性多了,没法实现,,还是用sql吧,,性能也比hql高 。。你只查询部分字段不也是为了提升性能的吗??

------解决方案--------------------
可以用builder pattern
这个问题所谓的component也并没有什么特殊的
------解决方案--------------------
引用:
Quote: 引用:

哦哦,,之前可能没有看清楚,,,你这样子 不可行的。。。因为涉及的关联性多了,没法实现,,还是用sql吧,,性能也比hql高 。。你只查询部分字段不也是为了提升性能的吗??

我后来没有再用component了,就用你之前说的方法,定义了个构造函数,然后这样写:
select new cn.edu.jxcms.model.BuyMedList(Id,MedId,MedName, Packing,
BuyPrice,SalePrice, BuyAmount, PayMoney, BuyTime)
from BuyMedList
就OK了!

不过我真正的问题才解决了一半,哈哈~~实际上BuyMedList与另一张表Buyer(进货员)是多对一关系,那想要获得Buyer除了Id以外的全部信息,hql语句该怎么改?