我正在从3.迁移到Hibernate 5.0.3.Final 3.在3.x我使用joda-time在oracle DB中持久化LocalDateTime.现在我看到hibernate 5对joda-time没有支持.请告诉我什么是最好的替代方案?
这是代码示例.
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalDateTime;
public class ComponentHistory {
@Column(name = EntityConstants.CREATED_BY_COLUMN_NAME)
private String createdBy;
@Column(name = EntityConstants.CREATED_DATE_COLUMN_NAME)
@Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime")
private LocalDateTime createdDate;
@Column(name = EntityConstants.UPDATED_BY_COLUMN_NAME)
private String updatedBy;
@Column(name = EntityConstants.UPDATED_DATE_COLUMN_NAME)
@Type(type = "org.joda.time.contrib.hibernate.PersistentLocalDateTime")
private LocalDateTime updatedDate;
Run Code Online (Sandbox Code Playgroud) 我从3迁移到hibernate 5.我看到序列生成器在Hibernate 5中无法正常工作.我的序列定义为最小值1000并且递增1.但是当我尝试创建新的实体记录时,我看到了用id 951插入的记录.似乎id是实际序列下一个值的50.在我的情况下,ID应为1000.
请让我知道任何帮助.
这是我的实体和顺序:
实体:
@Entity
@Table(name = "SOME TABLE")
public class Group {
@Id
@Column(name = "id")
@SequenceGenerator(name = "name", sequenceName ="SEQ_name" )
@GeneratedValue(strategy = GenerationType.AUTO, generator="name")
private Long id;
@Pattern(regexp = "^[^\\*]*$", message = "{3011}")
@Size(message = "{3014}")
@NotBlank(message = "{3000}")
@Column(name = NAME, unique = true, nullable = false)
private String name;
Run Code Online (Sandbox Code Playgroud)
序列:
CREATE SEQUENCE SEQ_name MINVALUE 1000 NOMAXVALUE INCREMENT BY 1 CACHE 20 NOORDER NOCYCLE;
Run Code Online (Sandbox Code Playgroud) 我正在将我的应用程序从 Hibernate 3 迁移到 Hibernate 5。我们正在使用DatabaseMetadata类来获取TableMetadata. 因此使用TableMetadata对象来获取数据库表列信息,如列大小、类型等。似乎在 Hibernate 5DatabaseMetadata类中已被弃用(已删除!)。DatabaseMetadataHibernate 5 中的类有任何替代方案吗?或者如何进入TableMetadataHibernate 5 env?