package org.eclipse.persistence.testing.models.optimisticlocking; | |
import java.util.Vector; | |
import org.eclipse.persistence.descriptors.RelationalDescriptor; | |
import org.eclipse.persistence.descriptors.VersionLockingPolicy; | |
import org.eclipse.persistence.tools.schemaframework.TableDefinition; | |
public class ListItem { | |
private int id; | |
private String description; | |
private int version; | |
private ListHolder holder; | |
public int getId() { | |
return id; | |
} | |
public void setId(int id) { | |
this.id = id; | |
} | |
public String getDescription() { | |
return description; | |
} | |
public void setDescription(String description) { | |
this.description = description; | |
} | |
public int getVersion() { | |
return version; | |
} | |
public void setVersion(int version) { | |
this.version = version; | |
} | |
public ListHolder getHolder() { | |
return holder; | |
} | |
public void setHolder(ListHolder holder) { | |
this.holder = holder; | |
} | |
public static RelationalDescriptor descriptor() { | |
RelationalDescriptor descriptor = new RelationalDescriptor(); | |
// SECTION: DESCRIPTOR | |
descriptor.setJavaClass(ListItem.class); | |
Vector vector = new Vector(); | |
vector.addElement("OL_ITEM"); | |
descriptor.setTableNames(vector); | |
descriptor.addPrimaryKeyFieldName("OL_ITEM.ID"); | |
// SECTION: PROPERTIES | |
descriptor.setIdentityMapClass(org.eclipse.persistence.internal.identitymaps.FullIdentityMap.class); | |
descriptor.setSequenceNumberName("OL_ITEM_SEQ"); | |
descriptor.setSequenceNumberFieldName("ID"); | |
descriptor.setExistenceChecking("Check cache"); | |
descriptor.setIdentityMapSize(100); | |
VersionLockingPolicy lockingPolicy = new VersionLockingPolicy(); | |
lockingPolicy.setWriteLockFieldName("OL_ITEM.VERSION"); | |
lockingPolicy.setIsStoredInCache(false); | |
descriptor.setOptimisticLockingPolicy(lockingPolicy); | |
// SECTION: COPY POLICY | |
descriptor.createCopyPolicy("constructor"); | |
// SECTION: INSTANTIATION POLICY | |
descriptor.createInstantiationPolicy("constructor"); | |
// SECTION: DIRECTTOFIELDMAPPING | |
org.eclipse.persistence.mappings.DirectToFieldMapping directtofieldmapping = new org.eclipse.persistence.mappings.DirectToFieldMapping(); | |
directtofieldmapping.setAttributeName("id"); | |
directtofieldmapping.setIsReadOnly(false); | |
directtofieldmapping.setFieldName("OL_ITEM.ID"); | |
descriptor.addMapping(directtofieldmapping); | |
// SECTION: DIRECTTOFIELDMAPPING | |
org.eclipse.persistence.mappings.DirectToFieldMapping directtofieldmapping1 = new org.eclipse.persistence.mappings.DirectToFieldMapping(); | |
directtofieldmapping1.setAttributeName("version"); | |
directtofieldmapping1.setIsReadOnly(false); | |
directtofieldmapping1.setFieldName("OL_ITEM.VERSION"); | |
descriptor.addMapping(directtofieldmapping1); | |
org.eclipse.persistence.mappings.DirectToFieldMapping directtofieldmapping2 = new org.eclipse.persistence.mappings.DirectToFieldMapping(); | |
directtofieldmapping2.setAttributeName("description"); | |
directtofieldmapping2.setIsReadOnly(false); | |
directtofieldmapping2.setFieldName("OL_ITEM.DESCR"); | |
descriptor.addMapping(directtofieldmapping2); | |
// SECTION: ONETOONEMAPPING | |
org.eclipse.persistence.mappings.OneToOneMapping onetoonemapping = new org.eclipse.persistence.mappings.OneToOneMapping(); | |
onetoonemapping.setAttributeName("holder"); | |
onetoonemapping.setIsReadOnly(false); | |
onetoonemapping.setUsesIndirection(false); | |
onetoonemapping.setReferenceClass(ListHolder.class); | |
onetoonemapping.setIsPrivateOwned(false); | |
onetoonemapping.addForeignKeyFieldName("OL_ITEM.HOLDER_ID", "OL_HOLDER.ID"); | |
descriptor.addMapping(onetoonemapping); | |
return descriptor; | |
} | |
public static TableDefinition tableDefinition() { | |
TableDefinition definition = new TableDefinition(); | |
definition.setName("OL_ITEM"); | |
definition.addIdentityField("ID", java.math.BigDecimal.class, 15); | |
definition.addField("VERSION", Integer.class, 30); | |
definition.addField("DESCR", java.lang.String.class); | |
definition.addField("HOLDER_ID", java.math.BigDecimal.class, 15); | |
definition.addField("ITEM_ORDER", Integer.class, 15); | |
return definition; | |
} | |
} |