jpa注释无法创建表

时间:2016-04-02 04:28:06

标签: hibernate jpa annotations entity

当我定义这样的实体对象时:

@Entity
@Table(name = "dau")
public class EntityDau implements Serializable {
    private static final long serialVersionUID = 2L;

    @Id
    private String startday;
    @Id
    private String endday; 
    @Id
    private String serverid;
    @Id
    private String channelid;
    @Id
    private String platformid;
    private int dau;

    ......

}

表dau无法在我的mysql db中创建。

但是当我删除@Id时,它就是成功的,就像这样:

@Entity
@Table(name = "dau")
public class EntityDau implements Serializable {
    private static final long serialVersionUID = 2L;

    @Id
    private String startday;
    @Id
    private String endday; 
    @Id
    private String serverid;
    @Id
    private String channelid;
    private String platformid;
    private int dau;

    ......

}

差异只是一个@id。 JPA / Hibernate中@id注释的数量是否有限制?

非常感谢!

1 个答案:

答案 0 :(得分:0)

正如任何基本的JPA文档都会告诉你的,如果你有一个@Id那么id是完全定义的,但是如果你有多个@Id(即复合id)那么你必须定义一个{ {1}}。我希望JPA实现中的错误消息告诉你,我使用的实现肯定会有例外。

另见http://www.datanucleus.org/products/accessplatform_5_0/jpa/application_identity.html