Qu'est-ce que @StaticMetamodel et SingularAttribute<Obj Obj>?
Je suis à essayer de comprendre ce code, pendant environ deux heures maintenant, par exemple en dessous de la classe ce sont ces champs qui représentent?
import java.util.Date;
import javax.persistence.metamodel.ListAttribute;
import javax.persistence.metamodel.SingularAttribute;
import javax.persistence.metamodel.StaticMetamodel;
import java.util.UUID;
@StaticMetamodel(Address.class)
public class Address_ extends {
public static volatile SingularAttribute<Address, Long> id;
public static volatile SingularAttribute<Address, UUID> personId;
public static volatile SingularAttribute<Address, Person> person;
}
La Address.class
est une classe java qui a la définition suivante:
@Entity
@Table(name = "address", schema = "public")
public class Address{
private Long id;
private Person person;
private UUID personId;
//....
}
Pouvez-vous, s'il vous plaît, expliquer ce que sont les @StaticMetamodel
et @SingularAttribute
annotations? Il peut être simple, mais je ne peux pas comprendre.
OriginalL'auteur MoienGK | 2013-10-31
Vous devez vous connecter pour publier un commentaire.
Comme par la documentation:
La statique de la méta-modèle a les propriétés suivantes:
X
dans le paquetp
, d'un méta-modèle de la classeX_
dans le paquetp
est créé.y
déclaré par classeX
, où le type dey
estY
, le méta-modèle de la classe doit contenir une déclaration comme suit:SingularAttribute
exemple:La statique de la méta-modèle est utile pour la création de type-safe requêtes avec l'APP Critères de l'API.
Par exemple, nous allons avoir la suite de deux entités,
Order
etItem
:et la
Item
entité:Voici un typesafe critères de requête, de construire avec l'API criteria:
Remarque l'utilisation de
Item_.id
etOrder_.item
. Ces accès statiquement la statique des méta-propriétés du modèle (qui reflètent les propriétés d'entité) et de cette façon, il est assurée que la requête est de construire correctement.est-il question de la simultanéité ?
Non, cela signifie que vous n'êtes pas censé pour instancier un objet entité afin d'obtenir des métadonnées pour un champ.
En d'autres termes, le méta-modèle statique qui le rend si vous n'avez pas besoin pour instancier un objet entité afin d'obtenir des métadonnées à propos de ses champs. C'est une bonne chose.
Puis-je mettre ce type de entity_.class dans un autre package que les orginales de l'entité ?
OriginalL'auteur Konstantin Yovkov