| /* |
| * Copyright (c) 2018, 2021 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0, |
| * or the Eclipse Distribution License v. 1.0 which is available at |
| * http://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| */ |
| |
| // Contributors: |
| // Oracle - initial API and implementation |
| package org.eclipse.persistence.testing.tests.junit.failover; |
| |
| import java.math.BigDecimal; |
| import java.util.Vector; |
| |
| import org.eclipse.persistence.descriptors.ClassDescriptor; |
| import org.eclipse.persistence.descriptors.RelationalDescriptor; |
| import org.eclipse.persistence.internal.helper.DatabaseField; |
| import org.eclipse.persistence.internal.sessions.ArrayRecord; |
| import org.eclipse.persistence.mappings.DirectToFieldMapping; |
| import org.eclipse.persistence.sessions.DatabaseRecord; |
| |
| public final class Address { |
| |
| public BigDecimal id; |
| public String street; |
| public String city; |
| public String province; |
| public String postalCode; |
| public String country; |
| |
| public Address() { |
| this.city = ""; |
| this.province = ""; |
| this.postalCode = ""; |
| this.street = ""; |
| this.country = ""; |
| } |
| |
| static ClassDescriptor descriptor() { |
| RelationalDescriptor descriptor = new RelationalDescriptor(); |
| descriptor.setJavaClass(Address.class); |
| descriptor.addTableName("ADDRESS"); |
| descriptor.addPrimaryKeyFieldName("ADDRESS.ADDRESS_ID"); |
| |
| // Descriptor Properties. |
| descriptor.useSoftCacheWeakIdentityMap(); |
| descriptor.setIdentityMapSize(100); |
| descriptor.setSequenceNumberFieldName("ADDRESS.ADDRESS_ID"); |
| descriptor.setSequenceNumberName("ADDRESS_SEQ"); |
| descriptor.setAlias("Address"); |
| |
| // Cache Invalidation Policy |
| // Query Manager. |
| descriptor.getQueryManager().checkCacheForDoesExist(); |
| |
| // Named Queries. |
| // Event Manager. |
| // Mappings. |
| DirectToFieldMapping cityMapping = new DirectToFieldMapping(); |
| cityMapping.setAttributeName("city"); |
| cityMapping.setFieldName("ADDRESS.CITY"); |
| descriptor.addMapping(cityMapping); |
| |
| DirectToFieldMapping countryMapping = new DirectToFieldMapping(); |
| countryMapping.setAttributeName("country"); |
| countryMapping.setFieldName("ADDRESS.COUNTRY"); |
| descriptor.addMapping(countryMapping); |
| |
| DirectToFieldMapping idMapping = new DirectToFieldMapping(); |
| idMapping.setAttributeName("id"); |
| idMapping.setFieldName("ADDRESS.ADDRESS_ID"); |
| descriptor.addMapping(idMapping); |
| |
| DirectToFieldMapping postalCodeMapping = new DirectToFieldMapping(); |
| postalCodeMapping.setAttributeName("postalCode"); |
| postalCodeMapping.setFieldName("ADDRESS.P_CODE"); |
| descriptor.addMapping(postalCodeMapping); |
| |
| DirectToFieldMapping provinceMapping = new DirectToFieldMapping(); |
| provinceMapping.setAttributeName("province"); |
| provinceMapping.setFieldName("ADDRESS.PROVINCE"); |
| descriptor.addMapping(provinceMapping); |
| |
| DirectToFieldMapping streetMapping = new DirectToFieldMapping(); |
| streetMapping.setAttributeName("street"); |
| streetMapping.setFieldName("ADDRESS.STREET"); |
| descriptor.addMapping(streetMapping); |
| |
| return descriptor; |
| } |
| |
| static String getSQL() { |
| return "SELECT ADDRESS_ID, CITY, COUNTRY, P_CODE, PROVINCE, STREET FROM ADDRESS"; |
| } |
| |
| static Vector<DatabaseRecord> getData(ClassDescriptor desc) { |
| Vector<DatabaseRecord> rows = new Vector<>(); |
| Vector<DatabaseField> fields = desc.getAllFields(); |
| DatabaseField[] fieldsArray = fields.toArray(new DatabaseField[0]); |
| rows.add(new ArrayRecord(fields, fieldsArray, new Object[] {51, "Calgary", "Canada", "J5J2B5", "ALB", "1111 Moose Rd." })); |
| rows.add(new ArrayRecord(fields, fieldsArray, new Object[] {52, "Metcalfe", "Canada", "Y4F7V6", "ONT", "2 Anderson Rd." })); |
| rows.add(new ArrayRecord(fields, fieldsArray, new Object[] {53, "Montreal", "Canada", "Q2S5Z5", "QUE", "1 Habs Place" })); |
| return rows; |
| } |
| } |