2016-04-02 2 views
0

, когда я определить объект Entity, как это:JPA аннотации не может создать таблицу

@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; 

    ...... 

} 

таблица дау не может создать в моей БД MySQL.

но когда я удалить @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. Существует ли ограничение на количество аннотаций @id в JPA/Hibernate?

спасибо!

ответ

0

Как любая базовая документация JPA бы сказать вам, если у вас есть один @Id то идентификатор полностью определен, но если у вас есть несколько @Id (т.е. композиционного идентификатора), то вы должны определить @IdClass. Я ожидал бы, что сообщения об ошибках из реализации JPA скажут вам, и реализация, которую я использую, конечно же, делает за исключением ее.

Смотрите также http://www.datanucleus.org/products/accessplatform_5_0/jpa/application_identity.html

+0

No. Второй пример В случае успешного. Он может создать таблицу – littzh

+0

Я не сказал, что не сможет «создать схему». Я сказал, что вам нужно @IdClass использовать JPA. Вы получите время выполнения и потерпите неудачу с тем, что есть. –

+0

большое спасибо – littzh

Смежные вопросы