This commit is contained in:
188
src/META-INF/application-template.xml
Normal file
188
src/META-INF/application-template.xml
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
文件说明:
|
||||||
|
${APP_HOME} 指当前程序的根目录APP_HOME
|
||||||
|
required: 被声明required的属性值不能为空
|
||||||
|
|
||||||
|
group
|
||||||
|
/ / \ \
|
||||||
|
/ / \ \
|
||||||
|
/ / \ \
|
||||||
|
node1 node2 node3 node4
|
||||||
|
/ \
|
||||||
|
/ \
|
||||||
|
/ \
|
||||||
|
/ \
|
||||||
|
serviceid1 serviceid2
|
||||||
|
/ \ / \
|
||||||
|
serviceid1_name1 serviceid1_name2 serviceid2_name1 serviceid2_name2
|
||||||
|
-->
|
||||||
|
<!--
|
||||||
|
address: 本地的IP地址, 默认值为默认网卡的ip,当不使用默认值需要指定值,如127.0.0.1
|
||||||
|
port: required 程序的管理Server的端口,用于关闭或者与监管系统进行数据交互
|
||||||
|
host: 程序的管理Server的地址; 默认为127.0.0.1。
|
||||||
|
lib: 加上额外的lib路径,多个路径用分号;隔开; 默认为空。 例如: ${APP_HOME}/lib/a.jar;${APP_HOME}/lib2/b.jar;
|
||||||
|
-->
|
||||||
|
<application port="6560" lib="">
|
||||||
|
|
||||||
|
<!-- 所有服务所需的资源 -->
|
||||||
|
<resources>
|
||||||
|
<!--
|
||||||
|
transport节点只能有一个,用于配置所有Transport的池参数,没配置该节点将自动创建一个。
|
||||||
|
threads: 线程总数, 默认: <group>节点数*CPU核数*8
|
||||||
|
bufferCapacity: ByteBuffer的初始化大小, 默认: 8K;
|
||||||
|
bufferPoolSize: ByteBuffer池的大小,默认: <group>节点数*CPU核数*8
|
||||||
|
-->
|
||||||
|
<transport capacity="8192" bufferPoolSize="32" threads="32"/>
|
||||||
|
<!--
|
||||||
|
一个组包含多个NODE, 同一Service服务可以由多个进程提供,这些进程称为一个GROUP,且同一GROUP内的进程必须在同一机房或局域网内
|
||||||
|
一个group节点对应一个 Transport 对象。
|
||||||
|
name: 服务组ID,长度不能超过11个字节. 默认为空字符串。 注意: name不能包含$符号。
|
||||||
|
protocol:值只能是UDP TCP, 默认TCP
|
||||||
|
注意: 一个node只能所属一个group。只要存在protocol=SNCP的Server节点信息, 就必须有group节点信息。
|
||||||
|
-->
|
||||||
|
<group name="" protocol="TCP">
|
||||||
|
<!--
|
||||||
|
需要将本地node的addr与port列在此处。
|
||||||
|
同一个<node>节点值只能存在一个<group>节点内,即同一个addr+port只能属于一个group。
|
||||||
|
addr: required IP地址
|
||||||
|
port: required 端口
|
||||||
|
clients: 连接池数, 默认: CPU核数*4
|
||||||
|
buffers: ByteBuffer对象池的大小, 默认: CPU核数*8
|
||||||
|
-->
|
||||||
|
<node addr="127.0.0.1" port="7070"/>
|
||||||
|
</group>
|
||||||
|
<!--
|
||||||
|
全局的参数配置, 可以通过@Resource(name="property.xxxxxx") 进行注入, 被注解的字段类型只能是String、primitive class
|
||||||
|
如果name是system.property.开头的值将会在进程启动时进行System.setProperty("yyyy", "YYYYYY")操作。
|
||||||
|
如果name是mimetype.property.开头的值将会在进程启动时进行MimeType.add("yyyy", "YYYYYY")操作。
|
||||||
|
load: 加载文件,多个用;隔开。
|
||||||
|
默认置入的system.property.的有:
|
||||||
|
System.setProperty("convert.json.tiny", "true");
|
||||||
|
System.setProperty("convert.bson.tiny", "true");
|
||||||
|
System.setProperty("convert.json.pool.size", "128");
|
||||||
|
System.setProperty("convert.bson.pool.size", "128");
|
||||||
|
System.setProperty("convert.json.writer.buffer.defsize", "4096");
|
||||||
|
System.setProperty("convert.bson.writer.buffer.defsize", "4096");
|
||||||
|
-->
|
||||||
|
<properties load="config.properties">
|
||||||
|
<property name="system.property.yyyy" value="YYYYYY"/>
|
||||||
|
<property name="xxxxxx" value="XXXXXXXX"/>
|
||||||
|
<property name="xxxxxx" value="XXXXXXXX"/>
|
||||||
|
<property name="xxxxxx" value="XXXXXXXX"/>
|
||||||
|
</properties>
|
||||||
|
</resources>
|
||||||
|
<!--
|
||||||
|
protocol: required server所启动的协议,有HTTP、SNCP, 目前只支持HTTP、SNCP。SNCP使用TCP实现;
|
||||||
|
host: 服务所占address , 默认: 0.0.0.0
|
||||||
|
port: required 服务所占端口
|
||||||
|
root: 如果是web类型服务,则包含页面 默认:{APP_HOME}/root
|
||||||
|
lib: server额外的class目录, 默认为空
|
||||||
|
charset: 文本编码, 默认: UTF-8
|
||||||
|
backlog: 默认10K
|
||||||
|
threads: 线程总数, 默认: CPU核数*16
|
||||||
|
maxbody: request.body最大值, 默认: 64K
|
||||||
|
bufferCapacity: ByteBuffer的初始化大小, 默认: 8K; 如果是HTTP协议则默认: 16K + 8B (兼容HTTP 2.0)
|
||||||
|
bufferPoolSize: ByteBuffer池的大小,默认: CPU核数*512
|
||||||
|
responsePoolSize: Response池的大小,默认: CPU核数*256
|
||||||
|
readTimeoutSecond: 读操作超时秒数, 默认0, 表示永久不超时
|
||||||
|
writeTimeoutSecond: 写操作超时秒数, 默认0, 表示永久不超时
|
||||||
|
-->
|
||||||
|
<server protocol="HTTP" host="127.0.0.1" port="6060" root="root" lib="">
|
||||||
|
|
||||||
|
<!--
|
||||||
|
加载所有的Service服务;
|
||||||
|
在同一个进程中同一个name同一类型的Service将共用同一个实例
|
||||||
|
autoload="true" 默认值. 自动加载以下目录(如果存在的话)下所有的Service类:
|
||||||
|
server.lib; server.lib/*; server.classes;
|
||||||
|
autoload="false" 需要显著的指定Service类
|
||||||
|
includes: 当autoload="true", 拉取类名与includes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
|
||||||
|
excludes: 当autoload="true", 排除类名与excludes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
|
||||||
|
groups: 所属组的节点,多个节点值用;隔开,如果配置文件中存在多个SNCP协议的Server节点,需要显式指定group属性.
|
||||||
|
当 protocol == SNCP 时 group表示当前Server与哪些节点组关联。
|
||||||
|
当 protocol != SNCP 时 group只能是空或者一个group的节点值,不能为多个节点值。
|
||||||
|
-->
|
||||||
|
<services autoload="true" includes="" excludes="">
|
||||||
|
|
||||||
|
<!-- 显著加载指定的Service的接口类 -->
|
||||||
|
<service value="com.xxx.XXX1Service"/>
|
||||||
|
<!--
|
||||||
|
name: 显式指定name,覆盖默认的空字符串值。 注意: name不能包含$符号。
|
||||||
|
groups: 显式指定groups,覆盖<services>节点的groups默认值。
|
||||||
|
-->
|
||||||
|
<service value="com.xxx.XXX2Service" name="" groups="xxx;yyy"/>
|
||||||
|
<!-- 给Service增加配置属性 -->
|
||||||
|
<service value="com.xxx.XXX1Service">
|
||||||
|
<property name="xxxxxx" value="XXXXXXXX"/>
|
||||||
|
<property name="xxxxxx" value="XXXXXXXX"/>
|
||||||
|
</service>
|
||||||
|
</services>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
当Server为HTTP协议时, request节点才有效。
|
||||||
|
remoteaddr 节点: 替换请求方节点的IP地址, 通常请求方是由nginx等web静态服务器转发过的则需要配置该节点。
|
||||||
|
且value值只能是以request.headers.开头,表示从request.headers中获取对应的header值。
|
||||||
|
例如下面例子获取request.getRemoteAddr()值,如果header存在X-RemoteAddress值则返回X-RemoteAddress值,不存在返回getRemoteAddress()。
|
||||||
|
-->
|
||||||
|
<request>
|
||||||
|
<remoteaddr value="request.headers.X-RemoteAddress"/>
|
||||||
|
</request>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
当Server为HTTP协议时, response节点才有效。
|
||||||
|
defcookie 节点: 当response里输出的cookie没有指定domain 和path时,使用该节点的默认值。
|
||||||
|
如果addheader、setheader 的value值以request.parameters.开头则表示从request.parameters中获取对应的parameter值
|
||||||
|
如果addheader、setheader 的value值以request.headers.开头则表示从request.headers中获取对应的header值
|
||||||
|
例如下面例子是在Response输出header时添加两个header(一个addHeader, 一个setHeader)。
|
||||||
|
-->
|
||||||
|
<response>
|
||||||
|
<defcookie domain="" path=""/>
|
||||||
|
<addheader name="Access-Control-Allow-Origin" value="request.headers.Origin" />
|
||||||
|
<setheader name="Access-Control-Allow-Credentials" value="true"/>
|
||||||
|
</response>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
加载所有的Servlet服务;
|
||||||
|
path: servlet的ContextPath前缀 默认为空
|
||||||
|
autoload="true" 默认值. 自动加载以下目录(如果存在的话)下所有的Servlet类:
|
||||||
|
${APP_HOME}/lib; ${APP_HOME}/root/lib/*; ${APP_HOME}/root/classes;
|
||||||
|
autoload="false" 需要显著的指定Service类
|
||||||
|
includes: 当autoload="true", 拉取类名与includes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
|
||||||
|
excludes: 当autoload="true", 排除类名与excludes中的正则表达式匹配的类, 多个正则表达式用分号;隔开
|
||||||
|
-->
|
||||||
|
<servlets path="/pipes" autoload="true" includes="" excludes="">
|
||||||
|
<!--
|
||||||
|
当Server为HTTP协议时,ResourceServlet才有效. 默认存在一个有默认属性的resource-servlet节点
|
||||||
|
webroot: web资源的根目录, 默认取server节点中的root值
|
||||||
|
-->
|
||||||
|
<resource-servlet webroot="root">
|
||||||
|
<!--
|
||||||
|
资源缓存的配置, 默认存在一个含默认属性的caches节点
|
||||||
|
limit: 资源缓存最大容量, 默认: 0, 为0表示不缓存, 单位可以是B、K、M、G,不区分大小写
|
||||||
|
lengthmax: 可缓存的文件大小上限, 默认: 1M(超过1M的文件不会被缓存)
|
||||||
|
-->
|
||||||
|
<caches limit="0M" lengthmax="1M" />
|
||||||
|
<!--
|
||||||
|
支持类似nginx中的rewrite, 目前只支持静态资源对静态资源的跳转。
|
||||||
|
type: 匹配的类型, 目前只支持location(匹配requestURI), 默认: location
|
||||||
|
match: 匹配的正则表达式
|
||||||
|
forward: 需跳转后的资源链接
|
||||||
|
例如下面例子是将/xxx-yyy.html的页面全部跳转到/xxx.html
|
||||||
|
-->
|
||||||
|
<rewrite type="location" match="^/([^-]+)-[^-\.]+\.html(.*)" forward="/$1.html"/>
|
||||||
|
</resource-servlet>
|
||||||
|
<!-- 显著加载指定的Servlet -->
|
||||||
|
<servlet value="com.xxx.XXX1Servlet" />
|
||||||
|
<servlet value="com.xxx.XXX2Servlet" />
|
||||||
|
<servlet value="com.xxx.XXX3Servlet" >
|
||||||
|
<property name="xxxxxx" value="XXXXXXXX"/>
|
||||||
|
<property name="yyyyyy" value="YYYYYYYY"/>
|
||||||
|
</servlet>
|
||||||
|
</servlets>
|
||||||
|
</server>
|
||||||
|
|
||||||
|
<server protocol="SNCP" host="127.0.0.1" port="7070" root="root" lib="">
|
||||||
|
<!-- 参数完全同上 -->
|
||||||
|
<services autoload="true" includes="" excludes="" />
|
||||||
|
</server>
|
||||||
|
</application>
|
||||||
21
src/META-INF/logging-template.properties
Normal file
21
src/META-INF/logging-template.properties
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
|
||||||
|
.handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
.level = FINE
|
||||||
|
|
||||||
|
org.level = INFO
|
||||||
|
javax.level = INFO
|
||||||
|
com.sun.level = INFO
|
||||||
|
sun.level = INFO
|
||||||
|
|
||||||
|
#java.util.logging.FileHandler.level = FINE
|
||||||
|
#10M
|
||||||
|
java.util.logging.FileHandler.limit = 10485760
|
||||||
|
java.util.logging.FileHandler.count = 100
|
||||||
|
java.util.logging.FileHandler.encoding = UTF-8
|
||||||
|
java.util.logging.FileHandler.pattern = ${APP_HOME}/logs-%m/log-%u.log
|
||||||
|
java.util.logging.FileHandler.append = true
|
||||||
|
|
||||||
|
#java.util.logging.ConsoleHandler.level = FINE
|
||||||
45
src/javax/persistence/Cacheable.java
Normal file
45
src/javax/persistence/Cacheable.java
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
import static java.lang.annotation.ElementType.TYPE;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies whether an entity should be cached if caching is enabled
|
||||||
|
* when the value of the <code>persistence.xml</code> caching element
|
||||||
|
* is <code>ENABLE_SELECTIVE</code> or <code>DISABLE_SELECTIVE</code>.
|
||||||
|
* The value of the <code>Cacheable</code> annotation is inherited by
|
||||||
|
* subclasses; it can be overridden by specifying
|
||||||
|
* <code>Cacheable</code> on a subclass.
|
||||||
|
*
|
||||||
|
* <p> <code>Cacheable(false)</code> means that the entity and its state must
|
||||||
|
* not be cached by the provider.
|
||||||
|
*
|
||||||
|
* @since Java Persistence 2.0
|
||||||
|
*/
|
||||||
|
@Target( { TYPE })
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
public @interface Cacheable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) Whether or not the entity should be cached.
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean value() default true;
|
||||||
|
}
|
||||||
143
src/javax/persistence/Column.java
Normal file
143
src/javax/persistence/Column.java
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
/** *****************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
***************************************************************************** */
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import static java.lang.annotation.ElementType.METHOD;
|
||||||
|
import static java.lang.annotation.ElementType.FIELD;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the mapped column for a persistent property or field.
|
||||||
|
* If no <code>Column</code> annotation is specified, the default values apply.
|
||||||
|
*
|
||||||
|
* <blockquote><pre>
|
||||||
|
* Example 1:
|
||||||
|
*
|
||||||
|
* @Column(name="DESC", nullable=false, length=512)
|
||||||
|
* public String getDescription() { return description; }
|
||||||
|
*
|
||||||
|
* Example 2:
|
||||||
|
*
|
||||||
|
* @Column(name="DESC",
|
||||||
|
* columnDefinition="CLOB NOT NULL",
|
||||||
|
* table="EMP_DETAIL")
|
||||||
|
* @Lob
|
||||||
|
* public String getDescription() { return description; }
|
||||||
|
*
|
||||||
|
* Example 3:
|
||||||
|
*
|
||||||
|
* @Column(name="ORDER_COST", updatable=false, precision=12, scale=2)
|
||||||
|
* public BigDecimal getCost() { return cost; }
|
||||||
|
*
|
||||||
|
* </pre></blockquote>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @since Java Persistence 1.0
|
||||||
|
*/
|
||||||
|
@Target({METHOD, FIELD})
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
public @interface Column {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The name of the column. Defaults to
|
||||||
|
* the property or field name.
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String name() default "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) Whether the column is a unique key. This is a
|
||||||
|
* shortcut for the <code>UniqueConstraint</code> annotation at the table
|
||||||
|
* level and is useful for when the unique key constraint
|
||||||
|
* corresponds to only a single column. This constraint applies
|
||||||
|
* in addition to any constraint entailed by primary key mapping and
|
||||||
|
* to constraints specified at the table level.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean unique() default false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) Whether the database column is nullable.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean nullable() default true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) Whether the column is included in SQL INSERT
|
||||||
|
* statements generated by the persistence provider.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean insertable() default true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) Whether the column is included in SQL UPDATE
|
||||||
|
* statements generated by the persistence provider.
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
boolean updatable() default true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The SQL fragment that is used when
|
||||||
|
* generating the DDL for the column.
|
||||||
|
* <p>
|
||||||
|
* Defaults to the generated SQL to create a
|
||||||
|
* column of the inferred type.
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String columnDefinition() default "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The name of the table that contains the column.
|
||||||
|
* If absent the column is assumed to be in the primary table.
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String table() default "";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The column length. (Applies only if a
|
||||||
|
* string-valued column is used.)
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int length() default 255;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The precision for a decimal (exact numeric)
|
||||||
|
* column. (Applies only if a decimal column is used.)
|
||||||
|
* Value must be set by developer if used when generating
|
||||||
|
* the DDL for the column.
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int precision() default 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The scale for a decimal (exact numeric) column.
|
||||||
|
* (Applies only if a decimal column is used.)
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
int scale() default 0;
|
||||||
|
}
|
||||||
43
src/javax/persistence/Entity.java
Normal file
43
src/javax/persistence/Entity.java
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.Documented;
|
||||||
|
import static java.lang.annotation.ElementType.TYPE;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies that the class is an entity. This annotation is applied to the
|
||||||
|
* entity class.
|
||||||
|
*
|
||||||
|
* @since Java Persistence 1.0
|
||||||
|
*/
|
||||||
|
@Documented
|
||||||
|
@Target(TYPE)
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
public @interface Entity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The entity name. Defaults to the unqualified
|
||||||
|
* name of the entity class. This name is used to refer to the
|
||||||
|
* entity in queries. The name must not be a reserved literal
|
||||||
|
* in the Java Persistence query language.
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String name() default "";
|
||||||
|
}
|
||||||
79
src/javax/persistence/GeneratedValue.java
Normal file
79
src/javax/persistence/GeneratedValue.java
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import static java.lang.annotation.ElementType.FIELD;
|
||||||
|
import static java.lang.annotation.ElementType.METHOD;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides for the specification of generation strategies for the
|
||||||
|
* values of primary keys.
|
||||||
|
*
|
||||||
|
* <p> The <code>GeneratedValue</code> annotation
|
||||||
|
* may be applied to a primary key property or field of an entity or
|
||||||
|
* mapped superclass in conjunction with the {@link Id} annotation.
|
||||||
|
* The use of the <code>GeneratedValue</code> annotation is only
|
||||||
|
* required to be supported for simple primary keys. Use of the
|
||||||
|
* <code>GeneratedValue</code> annotation is not supported for derived
|
||||||
|
* primary keys.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* Example 1:
|
||||||
|
*
|
||||||
|
* @Id
|
||||||
|
* @GeneratedValue(strategy=SEQUENCE, generator="CUST_SEQ")
|
||||||
|
* @Column(name="CUST_ID")
|
||||||
|
* public Long getId() { return id; }
|
||||||
|
*
|
||||||
|
* Example 2:
|
||||||
|
*
|
||||||
|
* @Id
|
||||||
|
* @GeneratedValue(strategy=TABLE, generator="CUST_GEN")
|
||||||
|
* @Column(name="CUST_ID")
|
||||||
|
* Long id;
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @see Id
|
||||||
|
*
|
||||||
|
* @since Java Persistence 1.0
|
||||||
|
*/
|
||||||
|
@Target({METHOD, FIELD})
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
|
||||||
|
public @interface GeneratedValue {
|
||||||
|
/**
|
||||||
|
* (Optional) The primary key generation strategy
|
||||||
|
* that the persistence provider must use to
|
||||||
|
* generate the annotated entity primary key.
|
||||||
|
* @return GenerationType
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
GenerationType strategy() default GenerationType.AUTO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The name of the primary key generator
|
||||||
|
* to use as specified in the SequenceGenerator
|
||||||
|
* or TableGenerator annotation.
|
||||||
|
* <p> Defaults to the id generator supplied by persistence provider.
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
String generator() default "";
|
||||||
|
}
|
||||||
56
src/javax/persistence/GenerationType.java
Normal file
56
src/javax/persistence/GenerationType.java
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines the types of primary key generation strategies.
|
||||||
|
*
|
||||||
|
* @see GeneratedValue
|
||||||
|
*
|
||||||
|
* @since Java Persistence 1.0
|
||||||
|
*/
|
||||||
|
public enum GenerationType {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that the persistence provider must assign
|
||||||
|
* primary keys for the entity using an underlying
|
||||||
|
* database table to ensure uniqueness.
|
||||||
|
*/
|
||||||
|
TABLE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that the persistence provider must assign
|
||||||
|
* primary keys for the entity using a database sequence.
|
||||||
|
*/
|
||||||
|
SEQUENCE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that the persistence provider must assign
|
||||||
|
* primary keys for the entity using a database identity column.
|
||||||
|
*/
|
||||||
|
IDENTITY,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates that the persistence provider should pick an
|
||||||
|
* appropriate strategy for the particular database. The
|
||||||
|
* <code>AUTO</code> generation strategy may expect a database
|
||||||
|
* resource to exist, or it may attempt to create one. A vendor
|
||||||
|
* may provide documentation on how to create such resources
|
||||||
|
* in the event that it does not support schema generation
|
||||||
|
* or cannot create the schema resource at runtime.
|
||||||
|
*/
|
||||||
|
AUTO
|
||||||
|
}
|
||||||
55
src/javax/persistence/Id.java
Normal file
55
src/javax/persistence/Id.java
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import static java.lang.annotation.ElementType.FIELD;
|
||||||
|
import static java.lang.annotation.ElementType.METHOD;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the primary key of an entity.
|
||||||
|
* The field or property to which the <code>Id</code> annotation is applied
|
||||||
|
* should be one of the following types: any Java primitive type;
|
||||||
|
* any primitive wrapper type;
|
||||||
|
* <code>String</code>;
|
||||||
|
* <code>java.util.Date</code>;
|
||||||
|
* <code>java.sql.Date</code>;
|
||||||
|
* <code>java.math.BigDecimal</code>;
|
||||||
|
* <code>java.math.BigInteger</code>.
|
||||||
|
*
|
||||||
|
* <p>The mapped column for the primary key of the entity is assumed
|
||||||
|
* to be the primary key of the primary table. If no <code>Column</code> annotation
|
||||||
|
* is specified, the primary key column name is assumed to be the name
|
||||||
|
* of the primary key property or field.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* @Id
|
||||||
|
* public Long getId() { return id; }
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @see Column
|
||||||
|
* @see GeneratedValue
|
||||||
|
*
|
||||||
|
* @since Java Persistence 1.0
|
||||||
|
*/
|
||||||
|
@Target({METHOD, FIELD})
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
|
||||||
|
public @interface Id {}
|
||||||
63
src/javax/persistence/Table.java
Normal file
63
src/javax/persistence/Table.java
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import static java.lang.annotation.ElementType.TYPE;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies the primary table for the annotated entity. Additional
|
||||||
|
* tables may be specified using SecondaryTable or SecondaryTables annotation.
|
||||||
|
*
|
||||||
|
* <p> If no <code>Table</code> annotation is specified for an entity
|
||||||
|
* class, the default values apply.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* @Entity
|
||||||
|
* @Table(name="CUST", schema="RECORDS")
|
||||||
|
* public class Customer { ... }
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @since Java Persistence 1.0
|
||||||
|
*/
|
||||||
|
@Target(TYPE)
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
public @interface Table {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (Optional) The name of the table.
|
||||||
|
* <p> Defaults to the entity name.
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String name() default "";
|
||||||
|
|
||||||
|
/** (Optional) The catalog of the table.
|
||||||
|
* <p> Defaults to the default catalog.
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String catalog() default "";
|
||||||
|
|
||||||
|
/** (Optional) The schema of the table.
|
||||||
|
* <p> Defaults to the default schema for user.
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
String schema() default "";
|
||||||
|
|
||||||
|
}
|
||||||
45
src/javax/persistence/Transient.java
Normal file
45
src/javax/persistence/Transient.java
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/*******************************************************************************
|
||||||
|
* Copyright (c) 2008 - 2013 Oracle Corporation. All rights reserved.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available under the
|
||||||
|
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
|
||||||
|
* which accompanies this distribution.
|
||||||
|
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
* and the Eclipse Distribution License is available at
|
||||||
|
* http://www.eclipse.org/org/documents/edl-v10.php.
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Linda DeMichiel - Java Persistence 2.1
|
||||||
|
* Linda DeMichiel - Java Persistence 2.0
|
||||||
|
*
|
||||||
|
******************************************************************************/
|
||||||
|
package javax.persistence;
|
||||||
|
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import static java.lang.annotation.ElementType.METHOD;
|
||||||
|
import static java.lang.annotation.ElementType.FIELD;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies that the property or field is not persistent. It is used
|
||||||
|
* to annotate a property or field of an entity class, mapped
|
||||||
|
* superclass, or embeddable class.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* @Entity
|
||||||
|
* public class Employee {
|
||||||
|
* @Id int id;
|
||||||
|
* @Transient User currentUser;
|
||||||
|
* ...
|
||||||
|
* }
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @since Java Persistence 1.0
|
||||||
|
*/
|
||||||
|
@Target({METHOD, FIELD})
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
|
||||||
|
public @interface Transient {}
|
||||||
Reference in New Issue
Block a user