Le bean InventoryLevels est un objet Java réutilisable que différentes applications peuvent
utiliser pour accéder à la table INVENTORY_LEVELS.
Cette leçon vous présente les sections du bean contenant les
éléments spécifiques à pureQuery.
Pour accéder au bean InventoryLevels,
procédez comme suit :
- Ouvrez l'onglet InventoryLevels.java
dans le panneau central.
- Consultez les sections du bean. Le bean présente
les sections suivantes :
- Section Java standard
- La première section est une section standard dédiée à une classe Java.
Elle déclare le package Java
auquel appartient la classe, contient un commentaire décrivant la classe,
importe les classes d'autres packages et déclare le lancement de la
classe. Notez cependant ces trois instructions d'importation :
import com.ibm.pdq.annotation.Table;
import com.ibm.pdq.annotation.Id;
import com.ibm.pdq.annotation.Column;
@Table, @Id et @Column sont des annotations utilisées par pureQuery
dans ce bean. Vous découvrirez comment dans une section ultérieure du bean.
- Annotation @Table
- pureQuery utilise ensuite l'annotation @Table pour identifier la table
représentée par le bean. pureQuery n'utilise cette annotation que dans les
beans générés. Lorsque vous écrivez vos propres beans, il est inutile d'utiliser @Table.
@Table(name = "INVENTORY_LEVELS", schema = "GOSALES")
public class InventoryLevels {
- Déclaration des zones
- Les zones sont toutes déclarées avec une portée protégée, ce que vous spécifiez
dans l'assistant Génération de code pureQuery à partir d'une table.
// Class variables
protected short inventoryYear;
protected short inventoryMonth;
protected int warehouseBranchCode;
protected int productNumber;
protected int openingInventory;
protected int quantityShipped;
protected int additions;
protected BigDecimal unitCost;
protected int closingInventory;
protected BigDecimal averageUnitCost;
- Déclaration des constructeurs
- Après avoir déclaré les zones du bean, le code déclare deux
constructeurs. Le premier constructeur permet de créer des beans vides et
le deuxième constructeur de créer des beans avec des valeurs pour les zones.
/**
* Constructor for InventoryLevels.
*/
public InventoryLevels() {
super();
}
/**
* Constructor for InventoryLevels that sets all fields.
*/
public InventoryLevels(short inventoryYear, short inventoryMonth,
int warehouseBranchCode, int productNumber, int openingInventory,
int quantityShipped, int additions, BigDecimal unitCost,
int closingInventory, BigDecimal averageUnitCost) {
super();
this.inventoryYear = inventoryYear;
this.inventoryMonth = inventoryMonth;
this.warehouseBranchCode = warehouseBranchCode;
this.productNumber = productNumber;
this.openingInventory = openingInventory;
this.quantityShipped = quantityShipped;
this.additions = additions;
this.unitCost = unitCost;
this.closingInventory = closingInventory;
this.averageUnitCost = averageUnitCost;
}
- Méthodes get() et set() pour chaque zone
- pureQuery utilise une annotation @Id pour identifier chaque zone mappée
à une colonne de clé primaire de la table. Cependant, pureQuery n'utilise cette annotation que dans les
beans générés. Lorsque vous écrivez vos propres beans, il est inutile d'utiliser @Id.
Les noms de zone étant en casse
mixte et n'utilisant pas de traits de soulignement, pureQuery utilise une annotation @Column
sur les méthodes get() pour mapper le nom de chaque colonne de la table à la zone correspondante. Pour savoir quand utiliser l'annotation @Column,
consultez le document
Annotations dans les beans, qui décrit également d'autres annotations que vous pouvez utiliser. Vous pouvez également consulter la rubrique
@Column dans pureQuery Javadoc.
/**
* Get inventoryYear.
*
* @return return inventoryYear
*/
@Id
@Column(name = "INVENTORY_YEAR")
public short getInventoryYear() {
return inventoryYear;
}
/**
* Set inventoryYear.
*
* @param short inventoryYear
*/
@Id
public void setInventoryYear(short inventoryYear) {
this.inventoryYear = inventoryYear;
}