下面列出了怎么用org.hibernate.annotations.Subselect的API类实例代码及写法,或者点击链接到github查看源代码。
public void cleanTables() {
doInJPA(this::sessionFactory, entityManager -> {
((MetamodelImpl) entityManager.getMetamodel()).collectionPersisters()
.values()
.forEach(x -> {
String deleteQuery = getDeleteQuery(((AbstractCollectionPersister) x).getTableName());
entityManager.createNativeQuery(deleteQuery).executeUpdate();
});
Arrays.stream(getAnnotatedClasses())
.filter(entity -> entity.getAnnotation(Subselect.class) == null)
.forEach(x -> {
String name = x.getAnnotation(Entity.class).name();
if (name == null || name.isEmpty()) {
name = x.getSimpleName();
}
entityManager.createQuery(getDeleteQuery(name)).executeUpdate();
});
});
}