|
@@ -187,21 +187,22 @@ impl<'l> QueryInterface<'l> {
|
|
|
assert_eq!(c.len(), val.len());
|
|
|
|
|
|
self.cached_query_column(
|
|
|
- "get_one_by",
|
|
|
+ "get_one_by_multi",
|
|
|
std::any::TypeId::of::<T>(),
|
|
|
c,
|
|
|
&|| {
|
|
|
- self.db
|
|
|
- .conn
|
|
|
- .prepare(&format!(
|
|
|
+ let query = format!(
|
|
|
"SELECT * FROM \"{}\" WHERE {}",
|
|
|
table_name,
|
|
|
c.iter()
|
|
|
.map(|col| format!("\"{}\" = ?", <T as Entity>::name(col.clone())))
|
|
|
.collect::<Vec<_>>()
|
|
|
- .join(",")
|
|
|
- ))
|
|
|
- .expect("")
|
|
|
+ .join(" AND ")
|
|
|
+ );
|
|
|
+ self.db
|
|
|
+ .conn
|
|
|
+ .prepare(&query)
|
|
|
+ .expect(format!("Failed to prepare SQL query: {}", query).as_str())
|
|
|
},
|
|
|
&mut |stmt| {
|
|
|
for index in 0..val.len() {
|