Files
cattleData/backend/src/main/java/com/example/cattletends/entity/ProvinceDailyPrice.java

128 lines
3.2 KiB
Java
Raw Normal View History

package com.example.cattletends.entity;
import javax.persistence.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 省份每日均价实体类
* 存储15个省份每天的省份均价只累加不覆盖
*/
@Entity
@Table(name = "province_daily_price",
uniqueConstraints = {
@UniqueConstraint(name = "uk_province_date", columnNames = {"province", "price_date"})
},
indexes = {
@Index(name = "idx_province", columnList = "province"),
@Index(name = "idx_price_date", columnList = "price_date"),
@Index(name = "idx_province_date_composite", columnList = "province,price_date"),
@Index(name = "idx_price", columnList = "price"),
@Index(name = "idx_date_price", columnList = "price_date,price"),
@Index(name = "idx_province_price", columnList = "province,price"),
@Index(name = "idx_up_time", columnList = "up_time"),
@Index(name = "idx_create_time", columnList = "create_time")
}
)
public class ProvinceDailyPrice {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 省份名称
*/
@Column(name = "province", nullable = false, length = 100)
private String province;
/**
* 省份均价/
*/
@Column(name = "price", precision = 10, scale = 2, nullable = false)
private BigDecimal price;
/**
* 价格日期只记录日期不包含时间
*/
@Column(name = "price_date", nullable = false)
private LocalDate priceDate;
/**
* 创建时间
*/
@Column(name = "create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@Column(name = "up_time", nullable = false)
private LocalDateTime upTime;
@PrePersist
protected void onCreate() {
createTime = LocalDateTime.now();
upTime = LocalDateTime.now();
if (priceDate == null) {
priceDate = LocalDate.now();
}
}
@PreUpdate
protected void onUpdate() {
upTime = LocalDateTime.now();
}
// Getters and Setters
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public LocalDate getPriceDate() {
return priceDate;
}
public void setPriceDate(LocalDate priceDate) {
this.priceDate = priceDate;
}
public LocalDateTime getCreateTime() {
return createTime;
}
public void setCreateTime(LocalDateTime createTime) {
this.createTime = createTime;
}
public LocalDateTime getUpTime() {
return upTime;
}
public void setUpTime(LocalDateTime upTime) {
this.upTime = upTime;
}
}