在我的项目中,我们使用的是Oracle,我们也希望为MYSQL提供支持。 Oracle有序列支持,但MYSQL没有。如果我们想要在AUTO,IDENTITY&中使用Hibernate持久性提供程序支持具有相同代码库的ORACLE和MYSQL,那么GenerationType是好的。表(或任何其他方式)?,任何人都可以给出关于这些的简要说明吗?
System.out.println("UTF-8: " + new String(byteArray));
答案 0 :(得分:1)
您可以使用
@GeneratedValue(generator = GenerationType.TABLE)
它适用于Oracle和mySql
答案 1 :(得分:0)
由于MySQL支持auto_increment,因此使用GenerationType.AUTO作为相应的POJO。
对于POJO for Oracle数据库,您可以为每个POJO创建一个序列,并在POJO中使用它,如下所示。
创建序列
CREATE SEQUENCE MY_SEQ
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
NOCACHE;
生成类型
我认为主键在Oracle表中标记为ID。
@Id
@GeneratedValue(generator = "mySeq")
@SequenceGenerator(name = "mySeq", sequenceName = "MY_SEQ", allocationSize = 1)
@Basic(optional = false)
@NotNull
@Column(name = "ID")
private Long id;
答案 2 :(得分:0)
您可能希望在xml配置文件中配置所有与数据库相关的内容。我没有使用xml文件来配置hibernate多年,我从来没有将它与注释混合在一起。但我理解它的方式:您的xml配置将覆盖POJO中的注释中的此特定配置。
因此,您可以将POJO与特定于oracle的ID生成器保留在一起,如果您将其部署到MySQL,则需要使用特定于MySQL的ID生成器添加xml配置。
虽然我不能给你任何细节。遗憾。