mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-16 16:15:06 +00:00
HHH-17460 - Ongoing JPA 32 work
This commit is contained in:
parent
fd70879845
commit
66d03336db
@ -34,6 +34,7 @@
|
||||
import org.hibernate.boot.spi.InFlightMetadataCollector;
|
||||
import org.hibernate.boot.spi.MetadataBuildingContext;
|
||||
import org.hibernate.boot.spi.PropertyData;
|
||||
import org.hibernate.internal.log.DeprecationLogger;
|
||||
import org.hibernate.mapping.Any;
|
||||
import org.hibernate.mapping.AttributeContainer;
|
||||
import org.hibernate.mapping.BasicValue;
|
||||
@ -923,33 +924,10 @@ public static boolean hasToOneAnnotation(AnnotationTarget property) {
|
||||
|
||||
|
||||
public static FetchMode getFetchMode(FetchType fetch) {
|
||||
switch ( fetch ) {
|
||||
case EAGER:
|
||||
return FetchMode.JOIN;
|
||||
case LAZY:
|
||||
return FetchMode.SELECT;
|
||||
default:
|
||||
throw new AssertionFailure("unknown fetch type: " + fetch);
|
||||
}
|
||||
}
|
||||
|
||||
private static CascadeType convertCascadeType(jakarta.persistence.CascadeType cascade) {
|
||||
switch ( cascade ) {
|
||||
case ALL:
|
||||
return CascadeType.ALL;
|
||||
case PERSIST:
|
||||
return CascadeType.PERSIST;
|
||||
case MERGE:
|
||||
return CascadeType.MERGE;
|
||||
case REMOVE:
|
||||
return CascadeType.REMOVE;
|
||||
case REFRESH:
|
||||
return CascadeType.REFRESH;
|
||||
case DETACH:
|
||||
return CascadeType.DETACH;
|
||||
default:
|
||||
throw new AssertionFailure("unknown cascade type: " + cascade);
|
||||
}
|
||||
return switch ( fetch ) {
|
||||
case EAGER -> FetchMode.JOIN;
|
||||
case LAZY -> FetchMode.SELECT;
|
||||
};
|
||||
}
|
||||
|
||||
public static String getCascadeStrategy(
|
||||
@ -986,6 +964,25 @@ private static EnumSet<CascadeType> convertToHibernateCascadeType(List<jakarta.p
|
||||
return cascadeTypes;
|
||||
}
|
||||
|
||||
private static CascadeType convertCascadeType(jakarta.persistence.CascadeType cascade) {
|
||||
switch ( cascade ) {
|
||||
case ALL:
|
||||
return CascadeType.ALL;
|
||||
case PERSIST:
|
||||
return CascadeType.PERSIST;
|
||||
case MERGE:
|
||||
return CascadeType.MERGE;
|
||||
case REMOVE:
|
||||
return CascadeType.REMOVE;
|
||||
case REFRESH:
|
||||
return CascadeType.REFRESH;
|
||||
case DETACH:
|
||||
return CascadeType.DETACH;
|
||||
default:
|
||||
throw new AssertionFailure("unknown cascade type: " + cascade);
|
||||
}
|
||||
}
|
||||
|
||||
private static String renderCascadeTypeList(EnumSet<CascadeType> cascadeTypes) {
|
||||
final StringBuilder cascade = new StringBuilder();
|
||||
for ( CascadeType cascadeType : cascadeTypes) {
|
||||
@ -993,9 +990,6 @@ private static String renderCascadeTypeList(EnumSet<CascadeType> cascadeTypes) {
|
||||
case ALL:
|
||||
cascade.append( "," ).append( "all" );
|
||||
break;
|
||||
case SAVE_UPDATE:
|
||||
cascade.append( "," ).append( "save-update" );
|
||||
break;
|
||||
case PERSIST:
|
||||
cascade.append( "," ).append( "persist" );
|
||||
break;
|
||||
@ -1008,24 +1002,50 @@ private static String renderCascadeTypeList(EnumSet<CascadeType> cascadeTypes) {
|
||||
case REFRESH:
|
||||
cascade.append( "," ).append( "refresh" );
|
||||
break;
|
||||
case REPLICATE:
|
||||
cascade.append( "," ).append( "replicate" );
|
||||
break;
|
||||
case DETACH:
|
||||
cascade.append( "," ).append( "evict" );
|
||||
break;
|
||||
case DELETE:
|
||||
case REMOVE:
|
||||
if ( CascadeType.DELETE == cascadeType ) {
|
||||
warnAboutDeprecatedCascadeType( CascadeType.DELETE, CascadeType.REMOVE );
|
||||
}
|
||||
cascade.append( "," ).append( "delete" );
|
||||
break;
|
||||
case DELETE_ORPHAN:
|
||||
cascade.append( "," ).append( "delete-orphan" );
|
||||
break;
|
||||
case SAVE_UPDATE:
|
||||
warnAboutDeprecatedCascadeType( CascadeType.SAVE_UPDATE );
|
||||
cascade.append( "," ).append( "save-update" );
|
||||
break;
|
||||
case REPLICATE:
|
||||
warnAboutDeprecatedCascadeType( CascadeType.REPLICATE );
|
||||
cascade.append( "," ).append( "replicate" );
|
||||
break;
|
||||
}
|
||||
}
|
||||
return cascade.length() > 0 ? cascade.substring( 1 ) : "none";
|
||||
}
|
||||
|
||||
private static void warnAboutDeprecatedCascadeType(CascadeType cascadeType) {
|
||||
DeprecationLogger.DEPRECATION_LOGGER.warnf(
|
||||
"%s.%s is deprecated",
|
||||
CascadeType.class.getName(),
|
||||
cascadeType.name().toLowerCase( Locale.ROOT )
|
||||
);
|
||||
}
|
||||
|
||||
private static void warnAboutDeprecatedCascadeType(CascadeType oldType, CascadeType newType) {
|
||||
DeprecationLogger.DEPRECATION_LOGGER.warnf(
|
||||
"%s.%s is deprecated, use %s.%s instead",
|
||||
CascadeType.class.getName(),
|
||||
oldType.name().toLowerCase( Locale.ROOT ),
|
||||
CascadeType.class.getName(),
|
||||
newType.name().toLowerCase( Locale.ROOT )
|
||||
);
|
||||
}
|
||||
|
||||
static boolean isGlobalGeneratorNameGlobal(MetadataBuildingContext context) {
|
||||
return context.getBootstrapContext().getJpaCompliance().isGlobalGeneratorScopeEnabled();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user