Skip to content

Commit d6778dd

Browse files
committed
HHH-18881 Implement fromEncodedString as inverse of appendEncodedString
1 parent fda18eb commit d6778dd

File tree

1 file changed

+2
-11
lines changed

1 file changed

+2
-11
lines changed

hibernate-core/src/main/java/org/hibernate/type/descriptor/java/JdbcTimestampJavaType.java

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.hibernate.dialect.Dialect;
2525
import org.hibernate.engine.spi.SharedSessionContractImplementor;
2626
import org.hibernate.sql.ast.spi.SqlAppender;
27-
import org.hibernate.type.descriptor.DateTimeUtils;
2827
import org.hibernate.type.descriptor.WrapperOptions;
2928
import org.hibernate.type.descriptor.jdbc.JdbcType;
3029
import org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators;
@@ -224,16 +223,8 @@ public void appendEncodedString(SqlAppender sb, Date value) {
224223
@Override
225224
public Date fromEncodedString(CharSequence charSequence, int start, int end) {
226225
try {
227-
final TemporalAccessor accessor = DateTimeUtils.DATE_TIME.parse( subSequence( charSequence, start, end ) );
228-
final Timestamp timestamp;
229-
if ( accessor.isSupported( ChronoField.INSTANT_SECONDS ) ) {
230-
timestamp = new Timestamp( accessor.getLong( ChronoField.INSTANT_SECONDS ) * 1000L );
231-
timestamp.setNanos( accessor.get( ChronoField.NANO_OF_SECOND ) );
232-
}
233-
else {
234-
timestamp = Timestamp.valueOf( LocalDateTime.from( accessor ) );
235-
}
236-
return timestamp;
226+
final TemporalAccessor accessor = ENCODED_FORMATTER.parse( subSequence( charSequence, start, end ) );
227+
return Timestamp.from( Instant.from( accessor ) );
237228
}
238229
catch ( DateTimeParseException pe) {
239230
throw new HibernateException( "could not parse timestamp string " + subSequence( charSequence, start, end ), pe );

0 commit comments

Comments
 (0)