
de.comhix.database.dao.BaseDao.kt Maven / Gradle / Ivy
package de.comhix.database.dao
import de.comhix.database.objects.DatabaseObject
import org.mongodb.morphia.Datastore
import javax.inject.Inject
/**
* @author Benjamin Beeker
*/
class BaseDao @Inject constructor(private val datastore: Datastore) : SimpleDao {
override suspend fun get(id: String, typeClass: Class): Type? {
return datastore.get(typeClass, id)
}
override suspend fun save(instance: Type): Type {
val key = datastore.save(instance)
return datastore.getByKey(instance::class.java as Class, key)
}
override suspend fun delete(id: String, typeClass: Class) {
datastore.delete(typeClass, id)
}
override suspend fun query(typeClass: Class): Query {
return Query(typeClass, datastore)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy