A list of work to do (and questions to be answered) with regard to ORM 6.0 and 6.x.
This categorization follows MoSCoW paradigm.
@TestFactory | |
public final List<DynamicNode> generateNodes() throws Exception { | |
final Class<? extends EnversBaseTest> testClass = getClass(); | |
final List<DynamicNode> nodes = new ArrayList<>(); | |
final List<Method> testMethods = findMethods( testClass, method -> method.isAnnotationPresent( EnversTest.class ) ); | |
final List<Method> beforeEachMethods = findMethods( testClass, method -> method.isAnnotationPresent( EnversBeforeEach.class ) ); | |
final List<Method> afterEachMethods = findMethods( testClass, method -> method.isAnnotationPresent( EnversAfterEach.class ) ); |
@Entity(...) | |
class EpisodePerson { | |
@EmbeddedId | |
Id id; | |
@Enumerated | |
EpisodeRole episodeRole; | |
Episode getEpisode() { | |
return getId().getEpisode(); |
package org.hibernate.boot.jdbc.spi; | |
import org.hibernate.engine.jdbc.env.spi.ExtractedDatabaseMetaData; | |
import org.hibernate.engine.jdbc.dialect.spi.DialectResolutionInfo; | |
public interface DatabaseInformation extends ExtractedDatabaseMetaData, DialectResolutionInfo { | |
} |
interface UpdateHandler { | |
// todo (6.0) : Ideally I think the best option is for this delegate to just handle execution of the "entire SQM delete" | |
// i.e. the single HQL that needs to get split into multiple SQL operations... | |
// | |
// something like: | |
/** | |
* Execute the multi-table update indicated by the SQM AST passed in when this |
interface EntityPersister ... { | |
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
// Design a "Queryable"-like contract for asking the persister to augment | |
// a org.hibernate.sql.exec.spi.JdbcOperation. | |
// | |
// One caveat to this is that currently JdbcOperation exposes the SQL String | |
// whereas it would be more effective to have this contract have access to the | |
// SQL AST for augmentation. Either have JdbcOperation expose SQL AST, or | |
// have this contract take an "in-flight" view of the JdbcOperation. |
A list of work to do (and questions to be answered) with regard to ORM 6.0 and 6.x.
This categorization follows MoSCoW paradigm.
package org.hibernate.persister.exec.spi; | |
public interface CollectionLoader extends Loader { | |
// todo (6.0) - any (additional) Options info? | |
interface Options { | |
} | |
List load(Serializable key, SharedSessionContractImplementor session, Options options); | |
} |
+ /home/jenkins/jdk-9-ea+155/bin/java -version | |
java version "9-ea" | |
Java(TM) SE Runtime Environment (build 9-ea+155) | |
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+155, mixed mode) | |
+ ./gradlew --stacktrace clean test | |
FAILURE: Build failed with an exception. | |
* What went wrong: | |
java.lang.ExceptionInInitializerError (no error message) |
SQM defines multiple "layers" to its type system. The lowest level is called SqmDomainType
. The higher-level
concept is called SqmExpressableType
(which is a DomainTypeExporter
which means it exposes a SqmDomainType
).
The SqmDomainType
is more-or-less akin to the Java type - on the ORM side, it actually relates to the
org.hibernate.type.spi.Type
contract. SqmDomainType
is further categorized into:
SqmDomainTypeBasic
- a basic value
java.lang.ClassNotFoundException: org.hibernate.proxy.pojo.bytebuddy.ProxyObject not found by org.hibernate.envers [99] | |
at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532) | |
at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) | |
at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) | |
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) | |
at java.lang.ClassLoader.defineClass1(Native Method) | |
at java.lang.ClassLoader.defineClass(ClassLoader.java:760) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) |