-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathREADME
45 lines (33 loc) · 2.02 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Experimenting with Git!
Does this allow commits from work? YES
Some of the features of Cayenne include:
* A GUI (Cayenne Modeler) for mapping database tables and columns to Java
classes and attributes, mapping relationships, generating Java classes,
defining callback and listener life cycle events, configuring caching
options, configuring database connection pools, reverse engineering
databases, database schema generation, defining shared queries, and mapping
stored procedures.
* Transactional management features (such as rollback, undo, commit) using
Cayenne's control layer (the "context" -- described later) or optionally
deferring to the container (such as JBoss) if in a J2EE environment.
* Query language for database-independent run-time SQL generation of SELECT
statements (including table joins).
* Automatic generation of INSERT, UPDATE, and DELETE statements when
committing the object graph to the database. Cayenne determines the order
of operations (the dependency graph) needed to do the commit without the
developer having to worry about the order objects were added or edited.
* Automatic transfer of database records and column data to Java objects and
back.
* Relationship management for pre-fetching data or lazy-loading data.
Lazy-loading is handled completely transparently by Cayenne and no special
effort is required by the developer to make it work.
* Optimistic locking support against real data instead of version number
columns to ensure data integrity. When using a version number, it is
possible an outside source (such as a database administrator or another
application) updated a value and neglected to increment the version number.
Cayenne can detect real data changes and prevent overwriting them by
optimistically locking on the actual data.
* Support for multiple databases, including accessing multiple databases (even
if the databases are from different vendors) at the same time.
* Remote Object Persistence (ROP) for client/server operation.
* XML serialization.