Skip to content

Commit 52e929a

Browse files
committed
HBX-2899: Update Hibernate ORM Dependency to Version 7.0.0.Beta1
Signed-off-by: Koen Aers <[email protected]>
1 parent afc9cc1 commit 52e929a

File tree

8 files changed

+75
-28
lines changed

8 files changed

+75
-28
lines changed

jbt/src/main/java/org/hibernate/tool/orm/jbt/internal/factory/PersistentClassWrapperFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ public boolean isDiscriminatorValueNull() {
328328

329329
@Override
330330
public boolean isExplicitPolymorphism() {
331-
return persistentClass.isExplicitPolymorphism();
331+
return false;
332332
}
333333

334334
@Override

jbt/src/test/java/org/hibernate/tool/orm/jbt/api/wrp/PersistentClassWrapperTest.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -935,13 +935,7 @@ public void testIsExplicitPolymorphism() {
935935
assertFalse(rootClassWrapper.isExplicitPolymorphism());
936936
assertFalse(singleTableSubclassWrapper.isExplicitPolymorphism());
937937
assertFalse(joinedSubclassWrapper.isExplicitPolymorphism());
938-
((RootClass)rootClassTarget).setExplicitPolymorphism(true);
939-
assertTrue(rootClassWrapper.isExplicitPolymorphism());
940-
assertTrue(singleTableSubclassWrapper.isExplicitPolymorphism());
941-
assertTrue(joinedSubclassWrapper.isExplicitPolymorphism());
942938
assertFalse(specialRootClassWrapper.isExplicitPolymorphism());
943-
((RootClass)specialRootClassTarget).setExplicitPolymorphism(true);
944-
assertTrue(specialRootClassWrapper.isExplicitPolymorphism());
945939
}
946940

947941
@Test

maven/src/main/java/org/hibernate/tool/maven/TransformHbmMojo.java

Lines changed: 57 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.apache.maven.plugin.MojoFailureException;
1414
import org.apache.maven.plugins.annotations.Mojo;
1515
import org.apache.maven.plugins.annotations.Parameter;
16+
import org.hibernate.boot.MetadataSources;
1617
import org.hibernate.boot.jaxb.Origin;
1718
import org.hibernate.boot.jaxb.SourceType;
1819
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmHibernateMapping;
@@ -21,6 +22,11 @@
2122
import org.hibernate.boot.jaxb.internal.MappingBinder;
2223
import org.hibernate.boot.jaxb.mapping.spi.JaxbEntityMappingsImpl;
2324
import org.hibernate.boot.jaxb.spi.Binding;
25+
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
26+
import org.hibernate.boot.spi.MetadataImplementor;
27+
import org.hibernate.cfg.JdbcSettings;
28+
import org.hibernate.dialect.H2Dialect;
29+
import org.hibernate.service.ServiceRegistry;
2430

2531
import jakarta.xml.bind.JAXBException;
2632
import jakarta.xml.bind.Marshaller;
@@ -36,13 +42,41 @@ public void execute() throws MojoExecutionException, MojoFailureException {
3642
MappingBinder mappingBinder = new MappingBinder(
3743
MappingBinder.class.getClassLoader()::getResourceAsStream,
3844
UnsupportedFeatureHandling.ERROR);
39-
Marshaller marshaller = createMarshaller(mappingBinder);
4045
List<File> hbmFiles = getHbmFiles(inputFolder);
4146
List<Binding<JaxbHbmHibernateMapping>> hbmMappings = getHbmMappings(hbmFiles, mappingBinder);
42-
List<Binding<JaxbEntityMappingsImpl>> transformed =
43-
HbmXmlTransformer.transform(hbmMappings, UnsupportedFeatureHandling.ERROR);
44-
for (int i = 0; i < hbmFiles.size(); i++) {
45-
marshall(marshaller, transformed.get(i).getRoot(), hbmFiles.get(i));
47+
performTransformation(hbmMappings, mappingBinder, createServiceRegistry());
48+
}
49+
50+
private ServiceRegistry createServiceRegistry() {
51+
StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder();
52+
ssrb.clearSettings();
53+
ssrb.applySetting(JdbcSettings.ALLOW_METADATA_ON_BOOT, false);
54+
// Choose the H2 dialect by default, make this configurable
55+
ssrb.applySetting(JdbcSettings.DIALECT, H2Dialect.class.getName());
56+
return ssrb.build();
57+
}
58+
59+
private void performTransformation(
60+
List<Binding<JaxbHbmHibernateMapping>> hbmBindings,
61+
MappingBinder mappingBinder,
62+
ServiceRegistry serviceRegistry) {
63+
Marshaller marshaller = createMarshaller(mappingBinder);
64+
MetadataSources metadataSources = new MetadataSources( serviceRegistry );
65+
hbmBindings.forEach( metadataSources::addHbmXmlBinding );
66+
List<Binding<JaxbEntityMappingsImpl>> transformedBindings = HbmXmlTransformer.transform(
67+
hbmBindings,
68+
(MetadataImplementor) metadataSources.buildMetadata(),
69+
serviceRegistry,
70+
UnsupportedFeatureHandling.ERROR
71+
);
72+
for (int i = 0; i < hbmBindings.size(); i++) {
73+
Binding<JaxbHbmHibernateMapping> hbmBinding = hbmBindings.get( i );
74+
Binding<JaxbEntityMappingsImpl> transformedBinding = transformedBindings.get( i );
75+
76+
HbmXmlOrigin origin = (HbmXmlOrigin)hbmBinding.getOrigin();
77+
File hbmXmlFile = origin.getHbmXmlFile();
78+
79+
marshall(marshaller, transformedBinding.getRoot(), hbmXmlFile);
4680
}
4781
}
4882

@@ -51,7 +85,7 @@ private List<Binding<JaxbHbmHibernateMapping>> getHbmMappings(List<File> hbmXmlF
5185
hbmXmlFiles.forEach((hbmXmlFile) -> {
5286
final String fullPath = hbmXmlFile.getAbsolutePath();
5387
getLog().info("Adding file: '" + fullPath + "' to the list to be transformed.");
54-
Origin origin = new Origin(SourceType.FILE, hbmXmlFile.getAbsolutePath());
88+
Origin origin = new HbmXmlOrigin(hbmXmlFile);
5589
Binding<JaxbHbmHibernateMapping> binding = bindMapping( mappingBinder, hbmXmlFile, origin );
5690
result.add(binding);
5791
});
@@ -107,4 +141,21 @@ private List<File> getHbmFiles(File f) {
107141
return result;
108142
}
109143

144+
private class HbmXmlOrigin extends Origin {
145+
146+
private static final long serialVersionUID = 1L;
147+
148+
private final File hbmXmlFile;
149+
150+
public HbmXmlOrigin(File hbmXmlFile) {
151+
super( SourceType.FILE, hbmXmlFile.getAbsolutePath() );
152+
this.hbmXmlFile = hbmXmlFile;
153+
}
154+
155+
public File getHbmXmlFile() {
156+
return hbmXmlFile;
157+
}
158+
159+
}
160+
110161
}

orm/src/main/java/org/hibernate/tool/internal/export/java/EntityPOJOClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ else if ( "delete-orphan".equals( element ) ) {
509509
}
510510
else if ( "save-update".equals( element ) ) {
511511
if (cascadeType == null) cascadeType = importType( "org.hibernate.annotations.CascadeType");
512-
cascade.append( cascadeType ).append(".SAVE_UPDATE").append(", ");
512+
cascade.append( cascadeType ).append(".MERGE").append(", ");
513513
}
514514
else if ( "replicate".equals( element ) ) {
515515
if (cascadeType == null) cascadeType = importType( "org.hibernate.annotations.CascadeType");

orm/src/main/java/org/hibernate/tool/internal/reveng/binder/CollectionSecondPass.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.hibernate.boot.spi.MetadataBuildingContext;
99
import org.hibernate.mapping.Collection;
1010
import org.hibernate.mapping.DependantValue;
11+
import org.hibernate.mapping.IndexedCollection;
1112
import org.hibernate.mapping.OneToMany;
1213
import org.hibernate.mapping.PersistentClass;
1314
import org.hibernate.mapping.Value;
@@ -46,7 +47,8 @@ public void doSecondPass(Map<String, PersistentClass> persistentClasses) throws
4647
oldKeyForeignKeyName = keyDependantValue.getForeignKeyName();
4748
keyDependantValue.setForeignKeyName("none");
4849
}
49-
super.doSecondPass(persistentClasses);
50+
secondPass(persistentClasses);
51+
// super.doSecondPass(persistentClasses);
5052
if(elementDependantValue!=null) {
5153
elementDependantValue.setForeignKeyName(oldElementForeignKeyName);
5254
}

orm/src/main/resources/dao/daohome.ftl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public class ${declarationName}Home {
9696
public void attachDirty(${declarationName} instance) {
9797
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "attaching dirty ${declarationName} instance");
9898
try {
99-
sessionFactory.getCurrentSession().saveOrUpdate(instance);
99+
sessionFactory.getCurrentSession().merge(instance);
100100
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "attach successful");
101101
}
102102
catch (RuntimeException re) {
@@ -117,14 +117,14 @@ public class ${declarationName}Home {
117117
}
118118
}
119119

120-
public void delete(${declarationName} persistentInstance) {
121-
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "deleting ${declarationName} instance");
120+
public void remove(${declarationName} persistentInstance) {
121+
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "removing ${declarationName} instance");
122122
try {
123-
sessionFactory.getCurrentSession().delete(persistentInstance);
124-
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "delete successful");
123+
sessionFactory.getCurrentSession().remove(persistentInstance);
124+
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "remove successful");
125125
}
126126
catch (RuntimeException re) {
127-
logger.log(${pojo.importType("java.util.logging.Level")}.SEVERE, "delete failed", re);
127+
logger.log(${pojo.importType("java.util.logging.Level")}.SEVERE, "remove failed", re);
128128
throw re;
129129
}
130130
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393
<google-java-format.version>1.19.1</google-java-format.version>
9494
<h2.version>2.2.224</h2.version>
9595
<hibernate-commons-annotations.version>6.0.6.Final</hibernate-commons-annotations.version>
96-
<hibernate-orm.version>7.0.0.Alpha3</hibernate-orm.version>
96+
<hibernate-orm.version>7.0.0.Beta1</hibernate-orm.version>
9797
<hsqldb.version>2.6.1</hsqldb.version>
9898
<javaee-api.version>8.0.1</javaee-api.version>
9999
<jboss-logging.version>3.5.3.Final</jboss-logging.version>

test/maven/src/it/hbm2dao/src/main/resources/templates/dao/daohome.ftl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public class ${declarationName}Home {
9696
public void attachDirty(${declarationName} instance) {
9797
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "attaching dirty ${declarationName} instance");
9898
try {
99-
sessionFactory.getCurrentSession().saveOrUpdate(instance);
99+
sessionFactory.getCurrentSession().merge(instance);
100100
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "attach successful");
101101
}
102102
catch (RuntimeException re) {
@@ -117,14 +117,14 @@ public class ${declarationName}Home {
117117
}
118118
}
119119

120-
public void delete(${declarationName} persistentInstance) {
121-
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "deleting ${declarationName} instance");
120+
public void remove(${declarationName} persistentInstance) {
121+
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "removing ${declarationName} instance");
122122
try {
123-
sessionFactory.getCurrentSession().delete(persistentInstance);
124-
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "delete successful");
123+
sessionFactory.getCurrentSession().remove(persistentInstance);
124+
logger.log(${pojo.importType("java.util.logging.Level")}.INFO, "remove successful");
125125
}
126126
catch (RuntimeException re) {
127-
logger.log(${pojo.importType("java.util.logging.Level")}.SEVERE, "delete failed", re);
127+
logger.log(${pojo.importType("java.util.logging.Level")}.SEVERE, "remove failed", re);
128128
throw re;
129129
}
130130
}

0 commit comments

Comments
 (0)