@Temporal TemporalType [DATE|TIME|TIMESTAMP] 根据不同的情况设置字段的类型~~而且保存的日期也会有区别而且jpa的Query查询时候会使用到Temporal 例如我我以前有个项目需要查询当天生成多少张订单 "select count(o) from Order where o.createDate>?0" query.setParameter(0, new Date()); //如果这样的话不行需要将日期做处理只取年月日 query.setParameter(0, new Date(), TemporalType.DATE); //这样就可以了,jpa自动处理上边的jpql查询的Order不就是实体名称吗,你如果多个实体重名可以修改
比如Event类:@Entity
@Table( name = "EVENTS" )
public class Event {
}非要整2个标注,为什么不这样:
@Entity(table="EVENT") ,
public class Event {
}还有这个,
@Id
@GeneratedValue(generator="increment")
@GenericGenerator(name="increment", strategy = "increment")
private Long getId() {
return id;
}反正都是为了标注ID的,为什么不这样:@Id(generator="increment" strategy = "increment"...)
private Long getId() {
return id;
}使用一个标注,里面定义属性,反正都是为了定义Id的。
非要整3个标注,看起来多啰嗦啊,他们出于什么目的这样设计呢?
@Table( name = "EVENTS" ) //是表名称
public class Event {
}@Entity(table="EVENT") //实体名称,你修改实体名称后Query查询的时候就知道差别了
public class Event {
}
@Id
@GeneratedValue(generator="_uuid")
@GenericGenerator(name="_uuid",strategy="uuid") //但是会跟hibernate耦合
根据不同的情况设置字段的类型~~而且保存的日期也会有区别而且jpa的Query查询时候会使用到Temporal
例如我我以前有个项目需要查询当天生成多少张订单
"select count(o) from Order where o.createDate>?0"
query.setParameter(0, new Date()); //如果这样的话不行需要将日期做处理只取年月日
query.setParameter(0, new Date(), TemporalType.DATE); //这样就可以了,jpa自动处理上边的jpql查询的Order不就是实体名称吗,你如果多个实体重名可以修改