当前位置: 首页 > 知识库问答 >
问题:

玩Framework 2.0和EBean,包装INFORMATION_SCHEMA

管玉堂
2023-03-14

用游戏!Framework 2.0.4和EBean作为持久层,我试图将数据库的“元”信息包装到Java类中。

db.myData.url="jdbc:sqlserver://localhost:2301;databaseName=myData;"
ebean.myData="models.database.JavaTable"
package models.database;
import javax.persistence.Column;
import javax.persistence.Entity;

import javax.persistence.Table;

import play.db.ebean.Model;
@Entity
@Table(name="tables",schema="INFORMATION_SCHEMA",catalog="myData")
public class JavaTable extends Model{

@Column(name="TABLE_NAME")
public String table_name;

public static Finder<String, JavaTable> find = new Finder<String, JavaTable>(
    String.class, JavaTable.class
);
}

当我启动Play!时,它告诉我需要在数据库上运行一个演化来创建表“mydata.information_schema.tables”。然后我尝试通过单元测试来测试连接...

@Test
public void testGetTables(){
     running(fakeApplication(), new Runnable() {
            @Override
            public void run() {
                EbeanServer server = Ebean.getServer("myData");

                List<SqlRow> rows = server.createSqlQuery("select * from myData.Information_Schema.Tables").findList();
               for(SqlRow row: rows)
                System.out.println("====>Row: " + row.toString());

            }
        });
}

单元测试正确执行,表名成功打印出来。

编辑:per@nico_ekito我删除了配置文件中的进化插件,并开始获取:

RuntimeException DataSource user is null 

共有1个答案

公良莫希
2023-03-14

您应该尝试通过在application.conf文件中添加以下内容来禁用这些改进:

evolutionplugin=disabled

测试是可以的,因为您启动的不是真正的应用程序,而是使用fakeapplication(),它不使用evolutions插件。

 类似资料:
  • 我有一个类,它扩展了 创建表主题的第一条记录可以,但无法创建另一条记录: [PersistenceException:执行DML bindLog时出错[]错误[ERROR:重复的键值违反了唯一约束“pk\U主题”\n详细信息:键(id)=(1)已存在。]] 例外情况当然发生在这一行: 这很奇怪,因为: 它以前工作没有问题 我应该怎么做才能解决这个问题? 类(当然不是全部,只是相关的):

  • Ebean是一个使用纯Java实现的开源ORM框架。  Bean使用JPA注释(@entity,  @OneToMany等Java注释)对实体进行映射。Ebean力求让使用最简单的API帮助开发者从数据库获取有用的数据信息。 Ebean是一个对象/关系映射持久层框架。它与EJB3相类似,但该框架简单易于学习和使用。 主要特点: 1.兼容EJB3 ORM映射 2.支持级联保存和删除 3.支持懒加载

  • 超简单、超强大的 ORM 框架,包含 OQL、SQL、ES 多查询引擎,超越 JPA、Hibernate、Mybatis。 支持的一些特性 对标准Entity支持完整CRUD操作,包括常用的查询操作 支持通过接口中的注解生成对应的查询(orm查询、sql查询、命名orm查询、命名sql查询、dto查询) 支持通过接口中的方法名生成对应的查询 支持QueryChannel服务 提供基础属性的实体基类

  • 有以下代码: 它打印: 12 这个不能编译。为什么?

  • 主要内容:装箱和拆箱,包装类的应用在 Java 的设计中提倡一种思想,即一切皆对象。但是从数据类型的划分中,我们知道 Java 中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?于是 Java 为每种基本数据类型分别设计了对应的类,称之为 包装类(Wrapper Classes),也有地方称为外覆类或数据类型类。 包装类和基本数据类型的关系如下表所示。 基本数据类型及对应的包装类 序号 基本数据类型

  • 注意:我已经将加密字段的datatype设置为varchar而不是binary,如下所示。因此,Ebean可能还会对生成的二进制数据进行十六进制。