0. 简介
主要完成两个功能:
1、添加买家商品
2、根据商品状态查看商品是够上架
1. ProductInfo实体类
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.Proxy;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
/**
* @author hh
* 商品实体类
*
* 商品实体类和商品类目类通过商品类目编号来关联
*/
@Data
@Entity
@Proxy(lazy = false)
@NoArgsConstructor
public class ProductInfo {
@Id
private String productId;
//商品名称
private String productName;
//商品价格
private BigDecimal productPrice;
//商品库存
private Integer productStock;
//商品描述
private String productDescription;
//商品小图
private String productIcon;
//商品状态,0正常,1下架
private Integer productStatus;
//商品类目编号
private Integer categoryType;
}
2. ProductInfoRepository接口
import com.hh.dataobject.ProductInfo;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ProductInfoRepository extends JpaRepository<ProductInfo,String> {
/**
* 通过商品的状态来查询上架的商品
* @param productStatus
* @return
*/
List<ProductInfo> findByProductStatus(Integer productStatus);
}
3. ProductInfoRepositoryTest测试类
import com.hh.dataobject.ProductInfo;
import org.junit.Assert;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.math.BigDecimal;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
class ProductInfoRepositoryTest {
@Autowired
private ProductInfoRepository repository;
//测试添加商品
@Test
public void saveTest(){
ProductInfo productInfo = new ProductInfo();
//设置商品Id
productInfo.setProductId("123456");
productInfo.setProductName("皮蛋粥");
productInfo.setProductPrice(new BigDecimal(3.2));
productInfo.setProductStock(100);
productInfo.setProductDescription("很好喝的哦");
productInfo.setProductIcon("http://pidan.jpg");
productInfo.setProductStatus(0);
//注意:这个商品类目编号一定要在数据库中存在才可以
productInfo.setCategoryType(2);
ProductInfo result = repository.save(productInfo);
Assert.assertNotNull(result);
}
//测试根据商品状态查看商品是否上架
@Test
void findByProductStatus() {
List<ProductInfo> productInfoList = repository.findByProductStatus(0);
Assert.assertNotEquals(0,productInfoList.size());
}
}