本帖最后由 jane2016 于 2013-04-12 01:45:40 编辑

解决方案 »

  1.   

    还有,怎么发现这个 JPA 似乎有些啰嗦。
    比如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个标注,看起来多啰嗦啊,他们出于什么目的这样设计呢?
      

  2.   

    @Temporal(TemporalType.TIMESTAMP) 是为了默认给它赋值的,取当前时间
      

  3.   

    @Entity
    @Table( name = "EVENTS" ) //是表名称
    public class Event {
    }@Entity(table="EVENT")  //实体名称,你修改实体名称后Query查询的时候就知道差别了
    public class Event {
    }
      

  4.   

    @GenericGenerator是hibernate的不是jpa的,jpa没有uuid策略但是耦合hibernate的就可以使用uuid了
    @Id
    @GeneratedValue(generator="_uuid")
    @GenericGenerator(name="_uuid",strategy="uuid") //但是会跟hibernate耦合
      

  5.   

    @Id有属性吗?我的JavaEE6.0API里什么都没有
      

  6.   

    @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不就是实体名称吗,你如果多个实体重名可以修改