hibernate一対一注釈構成およびエンティティ属性条件クエリー

2513 ワード

製品ステータスの取得中の資産情報の照会
/**
 *       
 *
 */
@Entity
@Table(name = "zxb_user_money_mg", schema = "")
@DynamicUpdate(true)
@DynamicInsert(true)
@SuppressWarnings("serial")
public class ZxbUserMoneyMgEntity implements java.io.Serializable {
	/**   ID */
	private java.lang.String assetid;
	/**   id */
	private java.lang.String userid;
	/**    */
	private BigDecimal money;
	/**      */
	private java.lang.String producttype;
	//       
	private ZxbProductMgEntity zxbProductiMgEntity;

	@OneToOne(fetch = FetchType.EAGER, targetEntity = ZxbProductMgEntity.class)
	@JoinColumn(name = "producttype", referencedColumnName = "producttype", nullable = false, updatable = false, insertable = false)
	public ZxbProductMgEntity getZxbProductiMgEntity() {
		return zxbProductiMgEntity;
	}

	public void setZxbProductiMgEntity(ZxbProductMgEntity zxbProductiMgEntity) {
		this.zxbProductiMgEntity = zxbProductiMgEntity;
	}
	//      set,get    
}
/**
 *     
 */
@Entity
@Table(name = "zxb_product_mg", schema = "")
@DynamicUpdate(true)
@DynamicInsert(true)
@SuppressWarnings("serial")
public class ZxbProductMgEntity implements java.io.Serializable {
	/** id */
	private java.lang.String id;
	/**      */
	private java.lang.String name;
	/**      */
	private BigDecimal totalmoney;
	/**      */
	private BigDecimal term;
	/**      */
	private BigDecimal mininvest;
	/**      */
	private BigDecimal normalrate;
	/**      */
	private java.lang.String productinfo;
	/**      */
	private BigDecimal remainmoney;
	/**    */
	private BigDecimal tailmoney;
	/**    */
	private java.lang.String producttype;
	/**     (0   1   2  ) */
	private java.lang.String productstatus;
	
	// set,get    
}

クエリー・コードは次のとおりです.
/**
	 *     id      
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List findUserMoneyMgByUid(String uid) throws Exception {
		Criteria c = getCurrentSession().createCriteria(ZxbUserMoneyMgEntity.class);
		c.add(Restrictions.eq("userid", new String(uid)));
		c.add(Restrictions.eq("deleteflag", new String("0")));
		//       
		c.createCriteria("zxbProductiMgEntity").add(Restrictions.eq("productstatus", new String("0")));
		c.addOrder(Order.desc("inserttime"));
		if (c.list() != null && c.list().size() > 0) {
			return c.list();
		}
		return null;
	}