diff --git a/mediarepo-daemon/mediarepo-model/src/file.rs b/mediarepo-daemon/mediarepo-model/src/file.rs index d187064..8163a2f 100644 --- a/mediarepo-daemon/mediarepo-model/src/file.rs +++ b/mediarepo-daemon/mediarepo-model/src/file.rs @@ -90,8 +90,9 @@ impl File { } let results: Vec<(hash::Model, Option)> = hash::Entity::find() .find_also_related(file::Entity) - .join(JoinType::Join, hash_tag::Relation::Hash.def()) + .join(JoinType::Join, hash_tag::Relation::Hash.def().rev()) .filter(condition) + .group_by(file::Column::Id) .all(&db) .await?; let files: Vec = results diff --git a/mediarepo-daemon/mediarepo-model/src/tag.rs b/mediarepo-daemon/mediarepo-model/src/tag.rs index 4645387..d5fd3c5 100644 --- a/mediarepo-daemon/mediarepo-model/src/tag.rs +++ b/mediarepo-daemon/mediarepo-model/src/tag.rs @@ -3,6 +3,7 @@ use mediarepo_core::error::RepoResult; use mediarepo_database::entities::namespace; use mediarepo_database::entities::tag; use sea_orm::prelude::*; +use sea_orm::sea_query::Expr; use sea_orm::{Condition, DatabaseConnection, Set}; #[derive(Clone)] @@ -74,7 +75,7 @@ impl Tag { all_condition = if let Some(namespace) = namespace { all_condition.add(namespace::Column::Name.eq(namespace)) } else { - all_condition.add(tag::Column::NamespaceId.eq(Option::::None)) + all_condition.add(Expr::tbl(tag::Entity, tag::Column::NamespaceId).is_null()) }; or_condition = or_condition.add(all_condition); }