kka*_*kas 3 java sql orm hibernate jpa
有没有人知道如何设置主键的约束名称(PK_ [name]),检查(CK_ [Name]),默认[DF_ [Name]],外键(Fk_ [Name]),Unique ..使用注释或者xml配置例如我想要那个表::::
CREATE TABLE ACCOUNT (
[ID] INT NOT NULL IDENTITY(1,1),
[USERNAME] VARCHAR(50) NOT NULL,
[PASSWORD] VARCHAR(50) NOT NULL,
[EMAIL] VARCHAR(100) NOT NULL,
[GENDER] INT NOT NULL ,
[ADDRESS] INT,
[AGE] INT CONSTRAINT DF_tblAccount_Age DEFAULT 0,
CONSTRAINT PK_tblAccount_ID PRIMARY KEY([ID]),
CONSTRAINT UQ_tblAccount_Address UNIQUE(ADDRESS),
CONSTRAINT FK_tblAccount_Gender FOREIGN KEY([GENDER]) REFERENCES GENDER([ID]),
CONSTRAINT FK_tblAccount_Address FOREIGN KEY([ADDRESS]) REFERENCES ADDRESS([ID]) ON DELETE SET NULL,
CONSTRAINT CK_tblAccount_Age CHECK ([AGE] > 0 AND [AGE] <100)
)
Run Code Online (Sandbox Code Playgroud)
将它转换为注释类或[名称] .hbm.xml,Hibernate是否支持使用约束名称,或者我必须在每次创建新类时更改表...我搜索并找到关于约束名称的0结果!
注释类示例:::
@Id @GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="ID")
// -->>Add Primary Key constraint Name Here !! ???
private int id;
@Column(name="Name")
private String name;
@Column(name="Surname")
private String surname;
@Column(name="age")
// -->>Add Check constraint Name Here !! ???
private String age;
@OneToOne(cascade={CascadeType.ALL},fetch=FetchType.LAZY)
@OnDelete(action=OnDeleteAction.CASCADE)
@JoinColumn(name="Address" , referencedColumnName="id",nullable=false)
// -->>Add Foreign Key constraint Name Here !! ???
private Address address;
Run Code Online (Sandbox Code Playgroud)
在JPA中,您可以使用@Table注释属性在类级别执行此操作,您可以在其中指定约束名称.对于id映射到列的主键id:
@Table(uniqueConstraints = @UniqueConstraint(columnNames = "ID", name = "PERSONS_PK_CONSTRAINT"))
Run Code Online (Sandbox Code Playgroud)