PrimaryKeyJoinColumn (Java EE 5)

Java EE API


javax.persistence Annotation Type PrimaryKeyJoinColumn


@Target(value={TYPE,METHOD,FIELD})
@Retention(value=RUNTIME)
public @interface PrimaryKeyJoinColumn

Implements: Annotation
@Target(value={TYPE, METHOD, FIELD})
@Retention(value=RUNTIME)

此注释指定用作外键连接另一个表格的主键列。

它用于将 JOINED 映射战略中的实体子类的主表格连接到其超类的主表格;它在 SecondaryTable 注释中用于将从属表格连接到主表格;它还可以在 OneToOne 映射使用,其中引用实体的主键用作被引用实体的外键。

如果在 JOINED 映射战略中没有为子类指定任何 PrimaryKeyJoinColumn 注释,则假定外键列的名称与超类主表格的主键列相同

示例:Customer 和 ValuedCustomer 子类

    @Entity
    @Table(name="CUST")
    @Inheritance(strategy=JOINED)
    @DiscriminatorValue("CUST")
    public class Customer { ... }
    
    @Entity
    @Table(name="VCUST")
    @DiscriminatorValue("VCUST")
    @PrimaryKeyJoinColumn(name="CUST_ID")
    public class ValuedCustomer extends Customer { ... }
 
英文文档:

This annotation specifies a primary key column that is used as a foreign key to join to another table.

It is used to join the primary table of an entity subclass in the JOINED mapping strategy to the primary table of its superclass; it is used within a SecondaryTable annotation to join a secondary table to a primary table; and it may be used in a OneToOne mapping in which the primary key of the referencing entity is used as a foreign key to the referenced entity.

If no PrimaryKeyJoinColumn annotation is specified for a subclass in the JOINED mapping strategy, the foreign key columns are assumed to have the same names as the primary key columns of the primary table of the superclass

    Example: Customer and ValuedCustomer subclass

    @Entity
    @Table(name="CUST")
    @Inheritance(strategy=JOINED)
    @DiscriminatorValue("CUST")
    public class Customer { ... }
    
    @Entity
    @Table(name="VCUST")
    @DiscriminatorValue("VCUST")
    @PrimaryKeyJoinColumn(name="CUST_ID")
    public class ValuedCustomer extends Customer { ... }
 

Since:
Java Persistence 1.0

Optional Element Summary
 String
 String
 String
 

abstract public String name()
当前表格的主键列的名称。

默认为与超类主表格(JOINED 映射战略)的主键列相同的名称;与主表格(SecondaryTable 映射)的主键列相同的名称;或者与引用实体(OneToOne 映射)表格的主键列相同的名称。

英文文档:

name

public abstract String name
The name of the primary key column of the current table.

Defaults to the same name as the primary key column of the primary table of the superclass (JOINED mapping strategy); the same name as the primary key column of the primary table (SecondaryTable mapping); or the same name as the primary key column for the table for the referencing entity (OneToOne mapping)

Default:
""

abstract public String referencedColumnName()
(可选)连接的表格的主键列名称。

默认为与超类主表格(JOINED 映射战略)的主键列相同的名称;与主表格(SecondaryTable 映射)的主键列相同的名称;或者与引用实体(OneToOne 映射)表格的主键列相同的名称。

英文文档:

referencedColumnName

public abstract String referencedColumnName
(Optional) The name of the primary key column of the table being joined to.

Defaults to the same name as the primary key column of the primary table of the superclass (JOINED mapping strategy); the same name as the primary key column of the primary table (SecondaryTable mapping); or the same name as the primary key column for the table for the referencing entity (OneToOne mapping)

Default:
""

abstract public String columnDefinition()
(可选)生成该列的 DDL 时使用的 SQL 句段。对于 OneToOne 主键关联不应指定此属性。

默认为生成的 SQL,以创建推断类型的列。

英文文档:

columnDefinition

public abstract String columnDefinition
(Optional) The SQL fragment that is used when generating the DDL for the column. This should not be specified for a OneToOne primary key association.

Defaults to the generated SQL to create a column of the inferred type.

Default:
""


Submit a bug or feature

Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

一看就知道只有菜鸟才干这么无知的事啦。

PS : 未经我党受权你也可自由散发此文档。 如有任何错误请自行修正;若因此而造成任何损失请直接找人民主席,请勿与本人联系。谢谢!