Skip to content

Commit 594608d

Browse files
committed
HHH-16972 DomainType doesn't need to extend BindableType
1 parent 2f2ba96 commit 594608d

File tree

16 files changed

+60
-28
lines changed

16 files changed

+60
-28
lines changed

hibernate-core/src/main/java/org/hibernate/boot/model/internal/NamedGraphCreatorJpa.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ private static SubGraphImplementor<?> createSubgraph(
129129
private static <T, E, K> SubGraphImplementor<?> makeAttributeNodeValueSubgraph(
130130
AttributeNodeImplementor<T, E, K> attributeNode, Class<?> subgraphType) {
131131
final Class<?> attributeValueType =
132-
attributeNode.getAttributeDescriptor().getValueGraphType().getBindableJavaType();
132+
attributeNode.getAttributeDescriptor().getValueGraphType().getJavaType();
133133
if ( !attributeValueType.isAssignableFrom( subgraphType ) ) {
134134
throw new AnnotationException( "Named subgraph type '" + subgraphType.getName()
135135
+ "' is not a subtype of the value type '" + attributeValueType.getName() + "'" );

hibernate-core/src/main/java/org/hibernate/dialect/function/array/DdlTypeHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class DdlTypeHelper {
2929
public static BasicType<?> resolveArrayType(DomainType<?> elementType, TypeConfiguration typeConfiguration) {
3030
@SuppressWarnings("unchecked") final BasicPluralJavaType<Object> arrayJavaType = (BasicPluralJavaType<Object>) typeConfiguration.getJavaTypeRegistry()
3131
.getDescriptor(
32-
Array.newInstance( elementType.getBindableJavaType(), 0 ).getClass()
32+
Array.newInstance( elementType.getJavaType(), 0 ).getClass()
3333
);
3434
final Dialect dialect = typeConfiguration.getCurrentBaseSqlTypeIndicators().getDialect();
3535
return arrayJavaType.resolveType(
@@ -46,7 +46,7 @@ public static BasicType<?> resolveListType(DomainType<?> elementType, TypeConfig
4646
@SuppressWarnings("unchecked") final BasicPluralJavaType<Object> arrayJavaType = (BasicPluralJavaType<Object>) typeConfiguration.getJavaTypeRegistry()
4747
.getDescriptor( List.class )
4848
.createJavaType(
49-
new ParameterizedTypeImpl( List.class, new Type[]{ elementType.getBindableJavaType() }, null ),
49+
new ParameterizedTypeImpl( List.class, new Type[]{ elementType.getJavaType() }, null ),
5050
typeConfiguration
5151
);
5252
final Dialect dialect = typeConfiguration.getCurrentBaseSqlTypeIndicators().getDialect();

hibernate-core/src/main/java/org/hibernate/dialect/function/array/JsonArrayViaElementArgumentReturnTypeResolver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public BasicValuedMapping resolveFunctionReturnType(
8181

8282
@AllowReflection
8383
public static <T> BasicType<?> resolveJsonArrayType(DomainType<T> elementType, TypeConfiguration typeConfiguration) {
84-
final Class<?> arrayClass = Array.newInstance( elementType.getBindableJavaType(), 0 ).getClass();
84+
final Class<?> arrayClass = Array.newInstance( elementType.getJavaType(), 0 ).getClass();
8585
@SuppressWarnings("unchecked")
8686
final BasicPluralJavaType<T> arrayJavaType =
8787
(BasicPluralJavaType<T>)

hibernate-core/src/main/java/org/hibernate/graph/internal/AttributeNodeImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,7 @@ public Map<Class<?>, SubGraphImplementor<?>> getSubGraphs() {
352352
}
353353
else {
354354
final HashMap<Class<?>, SubGraphImplementor<?>> map = new HashMap<>( valueSubgraph.getTreatedSubgraphs() );
355-
map.put( attribute.getValueGraphType().getBindableJavaType(), valueSubgraph );
355+
map.put( attribute.getValueGraphType().getJavaType(), valueSubgraph );
356356
return map;
357357
}
358358
}

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/BasicDomainType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,9 @@ public interface BasicDomainType<J>
1919
default PersistenceType getPersistenceType() {
2020
return PersistenceType.BASIC;
2121
}
22+
23+
@Override
24+
default Class<J> getJavaType() {
25+
return ReturnableType.super.getJavaType();
26+
}
2227
}

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/DomainType.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package org.hibernate.metamodel.model.domain;
66

77
import org.hibernate.Internal;
8-
import org.hibernate.query.BindableType;
98
import org.hibernate.type.descriptor.java.JavaType;
109

1110
/**
@@ -26,10 +25,20 @@
2625
*
2726
* @author Steve Ebersole
2827
*/
29-
public interface DomainType<J> extends BindableType<J> {
28+
public interface DomainType<J> {
3029

30+
/**
31+
* The {@link JavaType} representing this domain type.
32+
*/
3133
JavaType<J> getExpressibleJavaType();
3234

35+
/**
36+
* The Java class which represents by this domain type.
37+
*
38+
* @see jakarta.persistence.metamodel.Type#getJavaType
39+
*/
40+
Class<J> getJavaType();
41+
3342
/**
3443
* The name of the type.
3544
*

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/IdentifiableDomainType.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
*
1616
* @author Steve Ebersole
1717
*/
18-
public interface IdentifiableDomainType<J> extends ManagedDomainType<J>, IdentifiableType<J> {
18+
public interface IdentifiableDomainType<J>
19+
extends ManagedDomainType<J>, IdentifiableType<J> {
20+
1921
PathSource<?> getIdentifierDescriptor();
2022

2123
@Override

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/ManagedDomainType.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import org.hibernate.metamodel.RepresentationMode;
1111

1212
import jakarta.persistence.metamodel.ManagedType;
13+
import org.hibernate.query.BindableType;
1314

1415
/**
1516
* Extensions to the JPA-defined {@link ManagedType} contract.
1617
*
1718
* @author Steve Ebersole
1819
*/
19-
public interface ManagedDomainType<J> extends DomainType<J>, ManagedType<J> {
20+
public interface ManagedDomainType<J>
21+
extends DomainType<J>, ManagedType<J>, BindableType<J> {
2022
/**
2123
* Get the type name.
2224
*
@@ -34,6 +36,11 @@ public interface ManagedDomainType<J> extends DomainType<J>, ManagedType<J> {
3436

3537
RepresentationMode getRepresentationMode();
3638

39+
@Override
40+
default Class<J> getJavaType() {
41+
return getExpressibleJavaType().getJavaTypeClass();
42+
}
43+
3744
/**
3845
* The descriptor of the supertype of this type.
3946
*/

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/SimpleDomainType.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,22 @@
44
*/
55
package org.hibernate.metamodel.model.domain;
66

7+
import org.hibernate.query.BindableType;
8+
79
/**
810
* Describes any non-collection type
911
*
1012
* @author Steve Ebersole
1113
*/
12-
public interface SimpleDomainType<J> extends DomainType<J>, jakarta.persistence.metamodel.Type<J> {
14+
public interface SimpleDomainType<J>
15+
extends DomainType<J>, BindableType<J>, jakarta.persistence.metamodel.Type<J> {
1316
@Override
1417
default Class<J> getBindableJavaType() {
1518
return getJavaType();
1619
}
20+
21+
@Override
22+
default Class<J> getJavaType() {
23+
return getExpressibleJavaType().getJavaTypeClass();
24+
}
1725
}

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/AbstractDomainType.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,4 @@ public AbstractDomainType(JavaType<J> javaType) {
2121
public JavaType<J> getExpressibleJavaType() {
2222
return javaType;
2323
}
24-
25-
@Override
26-
public Class<J> getJavaType() {
27-
return getExpressibleJavaType().getJavaTypeClass();
28-
}
29-
30-
@Override
31-
public Class<J> getBindableJavaType() {
32-
return getJavaType();
33-
}
3424
}

0 commit comments

Comments
 (0)