blob: 2e32127bb315e1591cde2845d79f52d939d57f16 [file] [log] [blame]
:_basedir:
:_imagesdir: images/
:grid: cols
:metadata:
[[index]]
== Supported Java Typesanchor:Supported_Java_Types[]
When persisting a class, a persistence solution needs to know how to
persist the types of each field in the class. Clearly a persistence
solution can only support a finite number of Java types. It cannot know
how to persist every possible type creatable. The JDO specifications
define lists of types that are required to be supported by all
implementations of those specifications. This support can be
conveniently split into two parts
* An object that can be _referred-to_ (object reference, providing a
relation) and that has an "identity" - *First Class Object (FCO)*. JDO
requires an implementation to support _PersistenceCapable_ types, as
well as object/interface fields that refer to _PersistenceCapable_
objects.
* An object that does not have an "identity" - *Second Class Object
(SCO)*. This is something like a String or Date field in a class. It can
also be a Collection, that contains other objects.
{empty} +
=== First-Class (FCO) Typesanchor:First-Class_FCO_Types[]
JDO requires objects that are *PersistenceCapable* to be *FCO*. In
addition it supports persisting fields of Interface or java.lang.Object
type as FCO (since these are just references to PersistenceCapable
objects).
{empty} +
=== Second-Class (SCO) Typesanchor:Second-Class_SCO_Types[]
The table below shows the supported *SCO* java types in JDO2. The table
also shows the default-fetch-group (DFG) setting for that Java type (so
whether it is retrieved by default when retrieving an object with a
field of that type), whether the field is persisted by default (if it is
"false" then you would have to add *persistence-modifier="persistent"*
to the field for it to be persisted by JDO), and whether the java type
can be used as part of the primary key.
[cols="4",options="header",]
|===
|Java Type |DFG? |Persistent? |PK?
|boolean
|icon:check[]
|icon:check[]
|icon:check[]
|byte
|icon:check[]
|icon:check[]
|icon:check[]
|char
|icon:check[]
|icon:check[]
|icon:check[]
|double
|icon:check[]
|icon:check[]
|icon:times[]
|float
|icon:check[]
|icon:check[]
|icon:times[]
|int
|icon:check[]
|icon:check[]
|icon:check[]
|long
|icon:check[]
|icon:check[]
|icon:check[]
|short
|icon:check[]
|icon:check[]
|icon:check[]
|boolean[]
|icon:times[]
|icon:check[]
|icon:times[]
|byte[]
|icon:times[]
|icon:check[]
|icon:times[]
|char[]
|icon:times[]
|icon:check[]
|icon:times[]
|double[]
|icon:times[]
|icon:check[]
|icon:times[]
|float[]
|icon:times[]
|icon:check[]
|icon:times[]
|int[]
|icon:times[]
|icon:check[]
|icon:times[]
|long[]
|icon:times[]
|icon:check[]
|icon:times[]
|short[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Boolean
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.Byte
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.Character
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.Double
|icon:check[]
|icon:check[]
|icon:times[]
|java.lang.Float
|icon:check[]
|icon:check[]
|icon:times[]
|java.lang.Integer
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.Long
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.Short
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.Boolean[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Byte[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Character[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Double[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Float[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Integer[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Long[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Short[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.lang.Number
|icon:check[]
|icon:check[]
|icon:times[]
|java.lang.Object
|icon:times[]
|icon:times[]
|icon:times[]
|java.lang.String
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.String[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.math.BigDecimal
|icon:check[]
|icon:check[]
|icon:times[]
|java.math.BigInteger
|icon:check[]
|icon:check[]
|icon:check[]
|java.math.BigDecimal[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.math.BigInteger[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.sql.Date
|icon:times[]
|icon:times[]
|icon:check[]
|java.sql.Time
|icon:times[]
|icon:times[]
|icon:check[]
|java.sql.Timestamp
|icon:times[]
|icon:times[]
|icon:check[]
|java.util.ArrayList
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.Collection
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.Currency
|icon:times[]
|icon:check[]
|icon:check[]
|java.util.Date
|icon:check[]
|icon:check[]
|icon:check[]
|java.util.Date[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.HashMap
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.HashSet
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.Hashtable
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.LinkedHashMap
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.LinkedHashSet
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.LinkedList
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.List
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.Locale
|icon:times[]
|icon:check[]
|icon:check[]
|java.util.Locale[]
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.Map
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.Set
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.TreeMap
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.TreeSet
|icon:times[]
|icon:check[]
|icon:times[]
|java.util.Vector
|icon:times[]
|icon:check[]
|icon:times[]
|java.io.Serializable
|icon:times[]
|icon:times[]
|icon:times[]
|javax.jdo.spi.PersistenceCapable
|icon:times[]
|icon:times[]
|icon:check[]
|javax.jdo.spi.PersistenceCapable[]
|icon:times[]
|icon:times[]
|icon:times[]
|java.lang.Enum
|icon:check[]
|icon:check[]
|icon:check[]
|java.lang.Enum[]
|icon:times[]
|icon:check[]
|icon:check[]
|===