我正在使用hibernate 3,oracle 10g.我有一张桌子:主题.定义在这里
CREATE TABLE SUBJECT
(
SUBJECT_ID NUMBER (10),
FNAME VARCHAR2(30) not null,
LNAME VARCHAR2(30) not null,
EMAILADR VARCHAR2 (40),
BIRTHDT DATE not null,
constraint pk_sub primary key(subject_id) USING INDEX TABLESPACE data_index
)
;
Run Code Online (Sandbox Code Playgroud)
当插入新主题时,sub_seq用于创建主题id,定义在这里
create sequence sub_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 100
NOCYCLE ;
Run Code Online (Sandbox Code Playgroud)
Subject类是这样的:
@Entity
@Table(name="ktbs.syn_subject")
public class Subject {
@Id
@Column(name="subject_id")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SUB_SEQ")
@SequenceGenerator(name="SUB_SEQ", sequenceName = "SUB_SEQ")
private long subjectId;
private String fname;
private String lname;
private String emailadr; …Run Code Online (Sandbox Code Playgroud) 是否可以根据使用的数据库使用 JPA 定义不同的列类型?
我需要将 id 存储为 uuid 并且它必须是可移植的。那就是问题所在。PostgreSQL有“uuid”,MSSQL有“uniqueidentifier”,而Oracle什么都没有,我想必须使用“RAW”。
有人有想法并且可以帮助我吗?
编辑:目前,id 是使用 java.util.UUID 生成的,并以 varchar 形式存储在数据库中。但由于该数据类型的性能问题,我想将 ids 存储为 uuid 类型。对于Oracle来说,必须使用RAW类型,因为不存在uuid类型。如何告诉 JPA 在 PostgreSQ/MSSQL 中使用 uuid 类型,在 Oracle 中使用 RAW 类型?
我有一个Account实体,我正在尝试使用save函数来保存它。我的代码:
@Override
public Account createAccount(String pin) {
Account account = new Account();
account.setBalance(0L);
account.setPin(pin);
return accountRepository.save(account);
}
Run Code Online (Sandbox Code Playgroud)
现在我的实体类有一个名为 的自动生成字段accountNumber。我的实体类:
@Entity
@Table(name = "accounts")
@Data
public class Account {
@Column(name = "account_number", length = 32, insertable = false)
private String accountNumber;
private Long balance;
}
Run Code Online (Sandbox Code Playgroud)
现在调用后save,返回的实体具有accountNumberasnull但我可以在 intellij 数据库视图中看到它实际上不为空。所有其他自动生成的字段(例如id等)都在返回的实体中,只是为accountNumber空。accountNumber 的默认值在 sql 文件中设置:
ALTER TABLE accounts
ALTER COLUMN account_number SET DEFAULT DefaultValueSerializer(TRUE, TRUE, 12);
Run Code Online (Sandbox Code Playgroud)
这里,DefaultValueSerializer是生成帐号的函数。 …
hibernate ×2
jpa ×2
oracle ×2
database ×1
gaps-in-data ×1
java ×1
sequence ×1
spring ×1
spring-boot ×1
spring-mvc ×1