2011-01-23 1 views
2

Je crée un projet pour Group Chat qui a les objets de domaine suivants. Ce que je veux, c'est que l'orderId de CommentPK soit automatiquement incrémenté par rapport à l'identifiant de groupe fourni. Si j'utilise une méthode comme GenerationType.Table, pkColumnName = "max_id_name", pkColumnValue = "max_comment_id", valueColumnName = "max_id" alors le orderId sera globalement unique ce qui limitera aussi le nombre maximum de commentaires que le système supporte comme clé "max_comment_id "est une constante. Au lieu de cela, je veux utiliser un pkColumnValue qui peut être dérivé du groupId fourni par exemple. disons que pour le groupe 1, la clé est max_comment_group_1, pour le groupe 2, laissez la clé "max_comment_group_2". Je veux utiliser uniquement les spécifications JPA pour cela, afin que je puisse donner une valeur variable pour le champ pkColumnValue dans @TableGenerator. Mais toute solution spécifique d'hibernation fera également l'affaire.Option de génération automatique de clé composite Jib Hibernate

@Entity 
class Group 
{ 
@Id @GeneratedValue(strategy=GenerationType.IDENTITY) 
long id; 
String name; 
} 

@Entity 
class User 
{ 
@TableGenerator(
     name="max_ids_generator", 
     table="max_ids", 
     pkColumnName="max_id_name", 
     pkColumnValue="max_user_id", 
     valueColumnName="max_id", 
     initialValue=1, 
     allocationSize=1 
    ) 

@Id 
@GeneratedValue(strategy=GenerationType.TABLE, generator="max_ids_generator") 
long id; 
long name; 
} 

@Embeddable 
class CommentPK 
{ 
long groupId; 
long orderId; // this is the ordering of the comment, Eg. 1st comment, 2nd comment for the provided groupId. 
} 

@Entity 
class Comment 
{ 
@EmbeddedId 
CommentPK commentId; 
long userId; 
String comment; 
} 

Merci d'avance.

+0

Quelqu'un peut-il aider? – nattu

+0

L'ordre de commentaire doit-il être successif à moins que les commentaires aient été supprimés? –

+0

Vous avez une réponse/solution à cela? – javydreamercsw

Répondre

Questions connexes