【发布时间】:2021-07-18 15:11:09
【问题描述】:
我无法让 activejdbc 与 aws serverless 一起使用。
我将连接参数添加为 ENV 变量,并且 Base.findAll() 有效,但我无法让模型工作,我收到以下错误
"org.javalite.activejdbc.InitException: you are trying to work with models, but no models are found. Maybe you have no models in project, or you did not instrument the models. It is expected that you have a file activejdbc_models.properties on classpath\n\tat org.javalite.activejdb
我检查了我的 jar 文件,它确实有一个 'activejdbc_models.properties' 文件,并且检测似乎已经工作了。
这条路是死路吗?我应该转向直接jdbc吗?或者我可以让 actveJDBC 与 lambda 一起使用。
更新 在我的一个模型类地址上运行 javap,这是输出
Compiled from "Address.java"
public class com.kwiqhealth.models.Address extends org.javalite.activejdbc.Model {
public com.kwiqhealth.models.Address();
public static org.javalite.activejdbc.MetaModel getMetaModel();
public static org.javalite.activejdbc.MetaModel metaModel();
public static <T extends org.javalite.activejdbc.Model> T findOrCreateIt(java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> T findOrInit(java.lang.Object...);
public static java.util.Set<java.lang.String> attributeNames();
public static java.util.List<org.javalite.activejdbc.associations.Association> associations();
public static int delete(java.lang.String, java.lang.Object...);
public static boolean exists(java.lang.Object);
public static int deleteAll();
public static int update(java.lang.String, java.lang.String, java.lang.Object...);
public static int updateAll(java.lang.String, java.lang.Object...);
protected static org.javalite.validation.NumericValidationBuilder validateNumericalityOf(java.lang.String...);
public static org.javalite.validation.ValidationBuilder addValidator(org.javalite.validation.Validator);
protected static void addScope(java.lang.String, java.lang.String);
public static void removeValidator(org.javalite.validation.Validator);
public static java.util.List<org.javalite.validation.Validator> getValidators(java.lang.Class<? extends org.javalite.activejdbc.Model>);
protected static org.javalite.validation.ValidationBuilder validateRegexpOf(java.lang.String, java.lang.String);
protected static org.javalite.validation.ValidationBuilder validateEmailOf(java.lang.String);
protected static org.javalite.validation.ValidationBuilder validateRange(java.lang.String, java.lang.Number, java.lang.Number);
protected static org.javalite.validation.ValidationBuilder validatePresenceOf(java.lang.String...);
protected static org.javalite.validation.ValidationBuilder validateWith(org.javalite.validation.Validator);
protected static void convertWith(org.javalite.conversion.Converter, java.lang.String...);
protected static void dateFormat(java.lang.String, java.lang.String...);
protected static void dateFormat(java.text.DateFormat, java.lang.String...);
protected static void timestampFormat(java.lang.String, java.lang.String...);
protected static void timestampFormat(java.text.DateFormat, java.lang.String...);
protected static void blankToNull(java.lang.String...);
protected static void zeroToNull(java.lang.String...);
public static boolean belongsTo(java.lang.Class<? extends org.javalite.activejdbc.Model>);
public static void callbackWith(org.javalite.activejdbc.CallbackListener...);
public static <T extends org.javalite.activejdbc.Model> T create(java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> T createIt(java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> T findById(java.lang.Object);
public static <T extends org.javalite.activejdbc.Model> T findByCompositeKeys(java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> org.javalite.activejdbc.LazyList<T> where(java.lang.String, java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> org.javalite.activejdbc.ScopeBuilder<T> scopes(java.lang.String...);
public static <T extends org.javalite.activejdbc.Model> org.javalite.activejdbc.ScopeBuilder<T> scope(java.lang.String);
public static <T extends org.javalite.activejdbc.Model> org.javalite.activejdbc.LazyList<T> find(java.lang.String, java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> T findFirst(java.lang.String, java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> T first(java.lang.String, java.lang.Object...);
public static void findWith(org.javalite.activejdbc.ModelListener, java.lang.String, java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> org.javalite.activejdbc.LazyList<T> findBySQL(java.lang.String, java.lang.Object...);
public static <T extends org.javalite.activejdbc.Model> org.javalite.activejdbc.LazyList<T> findAll();
public static java.lang.Long count();
public static java.lang.Long count(java.lang.String, java.lang.Object...);
public static java.lang.String getTableName();
public static boolean isCached();
public static void purgeCache();
}
【问题讨论】:
-
如果您收到该错误,您的模型类中没有检测。你能做以下实验吗:从你的jar文件中提取类文件并执行这个命令:javap YourModel.class,然后在这里发布结果。这是查看您的课程是否被检测的完美方式。我单节课就可以了。
-
将结果添加到上面的问题中
标签: aws-lambda activejdbc