如何在playframework中从超类继承模型

2024-03-02

我试图了解继承是如何发挥作用的!但还没有成功。

所以,我有这样的超类:

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)  
abstract class SuperClass extends Model {  
    @Id  
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "SEQ_TABLE")   
    @TableGenerator(name = "SEQ_TABLE")  
    Long id;  

    int testVal;
}

和2个继承类:

@Entity
public class Sub extends SuperClass {        
    String name;

    @Override
    public String toString() {
            return name;
    }
}

@Entity
public class Sub1 extends SuperClass {        
    String name;

    @Override
    public String toString() {
            return name;
    }
}

我还有 2 个用于继承类的控制器:

public class Subs and Sub1s extends CRUD {

}

应用程序启动后,我在 MySQL 数据库中收到了我的模型的 2 个表(Sub 和 Sub 1),其结构如下:id大整数(20),namevarchar(255)。没有testVal这是超类中的。

当我尝试创建新对象时SubCRUD 接口中的类我收到这样的错误:模板 {module:crud}/app/views/tags/crud/form.html 中发生执行错误。引发的异常是MissingPropertyException:没有这样的属性:类的 testVal:models.Sub。

在 {module:crud}/app/views/tags/crud/form.html 中(第 64 行左右)#{crud.number字段名称:field.name, value:(currentObject ? currentObject[field.name] : null) /}

  1. 我应该怎么做才能正确生成继承模型的 MySQL 表并修复错误?
  2. 是否可以为多个继承类使用一个超级控制器?

嗯,感谢斯德斯波利特,我做了一些实验。这是我得到的:

超类:

@MappedSuperclass
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class SuperClass extends Model {
}

继承类:

@Entity 
public class Sub extends SuperClass {
}

“超级控制器”我是这样制作的:

@With({Secure.class, SuperController.class})
@CRUD.For(Sub.class)
public class Subs extends CRUD {
}

@With({Secure.class, SuperController.class})
@CRUD.For(Sub1.class)
public class Sub1s extends CRUD {
}

@CRUD.For(子类)用于告诉拦截器应该在哪个类上工作

public class SuperController extends Controller {

    @After/Before/Whatever
    public static void doSomething() {
        String actionMethod = request.actionMethod;
        Class<? extends play.db.Model> model = getControllerAnnotation(CRUD.For.class).value();

        List<String> allowedActions = new ArrayList<String>();
        allowedActions.add("show");
        allowedActions.add("list");
        allowedActions.add("blank");

        if (allowedActions.contains(actionMethod)) {
            List<SuperClass> list = play.db.jpa.JPQL.instance.find(model.getSimpleName()).fetch();
        }
    }
}

我不确定做一点事()方法确实很好,并且是 Java 风格/Play! 风格。但这对我有用。 请告诉我是否可以以更原生的方式捕获模型的类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在playframework中从超类继承模型 的相关文章

  • 使用 BlobOutputStream 在 Azure 中上传 blob

    我正在尝试直接从流上传 blob 因为我不知道我决定尝试的流的长度这个答案 https stackoverflow com a 24621538 3695939 这不起作用 即使它从流中读取并且不会抛出任何异常 内容也不会上传到我的容器 我
  • 相当于 java PBKDF2WithHmacSHA1 的 Python

    我的任务是构建一个 API 的使用者 该 API 需要带有 UNIX 时间种子值的加密令牌 我看到的示例是使用我不熟悉的 Java 实现的 在阅读文档和其他堆栈文章后一直无法找到解决方案 使用javax crypto SecretKey j
  • Google App Engine 数据存储写入:如何远程启用/禁用只读模式?

    在阅读备份时GAE 的数据存储 https developers google com appengine docs adminconsole datastoreadmin where 我们强烈建议您在备份或恢复期间将应用程序设置为只读模式
  • selenium 2.0 中的 isElementPresent

    大家好 我正在使用 webdriver 所以如果我想使用 selenium s rc 函数 isElementPresent 我必须模拟 selenium rc 所以我会执行以下操作 import org openqa selenium B
  • Eclipse 与 IntelliJ 热部署

    我的应用程序配置 Tomcat 8 Spring Spring MVC Hibernate 在 Eclipse 中 我创建了 Tomcat 服务器 并将我的应用程序添加到资源中 JSP JS CSS 和 JAVA 类热部署的工作原理就是这样
  • 使用起始字符串和结束字符串从长字符串中提取子字符串?

    我有这个长字符串 它是一个长的连续字符串 Home address H NO 12 SECTOR 12 GAUTAM BUDH NAGAR NOIDA 121212 UTTAR PRADESH INDIA 911112121212 Last
  • Java:将二维字符串数组打印为右对齐表格

    是什么best打印a的单元格的方法String 数组作为右对齐表 例如 输入 x xxx yyy y zz zz 应该产生输出 x xxx yyy y zz zz 这似乎是一个should能够完成使用java util Formatter
  • 使用 SSL 和代理设置的 Rest 客户端获取连接超时

    我正在使用带有忽略 ssl 的 Rest 客户端 它工作正常 但在将来我尝试使用客户端证书进行的生产中将无法工作 我有 ca 证书和客户端证书 我用它创建了一个客户端 但我收到错误 Exception in thread main com
  • 参考接口创建对象

    引用变量可以声明为类类型或接口类型 如果变量声明为接口类型 则它可以引用实现该接口的任何类的任何对象 根据上面的说法我做了一个理解上的代码 正如上面所说声明为接口类型 它可以引用实现该接口的任何类的任何对象 但在我的代码中显示display
  • 使用 POJO 仅更新 JOOQ 记录中已更改的字段

    我想使用 POJO 作为源来更新 JOOQ 记录中已更改的字段 Record from Object http www jooq org javadoc 3 8 x org jooq Record html from java lang O
  • 如何组合 3 个或更多 CompletionStages?

    如果有 2 个 CompletionStages 我可以将它们与thenCombine method CompletionStage a aCompletionStage getA CompletionStage b bCompletion
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • Tomcat下的Spring CXF Soap Web服务:找不到服务

    我正在尝试使用 CXF 和 Spring 设置一个在 Tomcat 上运行的简单 CXF Web 服务 我有一个 Web 应用程序初始化程序来引导 CXF servlet public class WebAppInitializer ext
  • Java/Hibernate - 异常:内部连接池已达到其最大大小,当前没有可用的连接

    我第一次在大学项目中使用 Hibernate 而且我还是个新手 我想我遵循了我的教授和我阅读的一些教程给出的所有指示 但我不断收到标题中的异常 Exception in thread main org hibernate Hibernate
  • 从 Java 应用程序读取的文件是否会调用系统调用?

    我的理解是 请求文件系统路径 例如 aFile 的用户应用程序将调用文件系统并获取所请求文件的虚拟地址 然后应用程序将尝试以该地址作为参数 即作为 CPU 指令 进行读 写操作 执行读取命令时 内存管理单元会将该地址转换为物理地址 并查看页
  • 使用 Retrofit 获取原始 HTTP 响应

    我想从我的 API REST 获取原始 http 响应 我尝试过这个界面 POST login FormUrlEncoded Call
  • 可空日期列合并问题

    我在 Geronimo 应用程序服务器上使用 JPA 和下面的 openjpa 实现 我也在使用MySQL数据库 我在更新具有可为空 Date 属性的对象时遇到问题 当我尝试合并 Date 属性设置为 null 的实体时 不会生成 sql
  • Java环境变量设置方法

    我已将以下行插入 bash profile export GOOGLE APPLICATION CREDENTIALS Users jun Downloads export PATH PATH GOOGLE APPLICATION CRED
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez

随机推荐

  • 如何在Android中截断TextView,然后添加省略号

    我读过这里的一些其他线程也有类似的担忧 但他们的答案似乎都不适合我 无法在 Android 上使用省略号 https stackoverflow com questions 1698881 cant get ellipsis to work
  • 如何创建 ASP.NET 网站的移动版本?

    我有一个使用asp创建的网站 我想让手机可以访问它 这样用户就可以通过他 她的手机使用它 我对 XML 或 NET 没有任何了解 我怎样才能做到这一点 ASP NET 移动网页 https learn microsoft com en us
  • 如何在 VSTS 部署期间从 Azure Web App 删除文件

    我有一个 Azure Web 应用程序 我将一些数据存储在它的持久存储中 通过我的 VSTS 发布定义 我想删除一个填充了数据的文件夹 该文件夹位于D home site MyFolder 有没有办法可以在部署期间以编程方式从 VSTS 发
  • 哪里有一些好的 Xlib 编程指南?

    我现在对 Xlib 编程有点困惑 几周前我开始使用 dwm 一个轻量级窗口管理器 我想找一些 Xlib 编程书籍或在线资源来自定义 dwm 然而 在网上搜索后 我没有看到太多关于 Xlib 的新文章 亚马逊上最新的X窗口系统编程指南是199
  • 我的spark sql限制非常慢

    我使用spark从elasticsearch中读取 Like select col from index limit 10 问题是索引非常大 它包含 1000 亿行 而 Spark 会生成数千个任务来完成这项工作 我只需要 10 行 即使
  • 将 pyqtgraph 导出到视频

    我想将 pyqtgraph 导出到视频 有什么简单的方法可以做到这一点吗 该图与此示例没有太大区别 只是它包含大约 10000 帧 from pyqtgraph Qt import QtGui QtCore import numpy as
  • poi 中的 IRR 返回 NaN 但 excel 中的值正确

    当我使用 apache poi 计算 Irr 值时 我得到 Double NaN 但 excel 中的相同输入我得到负值 那么为什么它们返回不同的值呢 inputs here irr 1 0601017230994111E8 19150 6
  • React-native 链接找不到我的 MainApplication.java 文件

    每次我尝试react native link一个新的库 我收到同样的错误消息 这是用于react native video的 rnpm install info Linking react native video android depe
  • 为什么在 google chrome 浏览器中尝试时,javaScript 中的“navigator.userAgent”会返回字符串“Mozilla”?

    我正在开发 javaScript 代码 我想确定客户端浏览器的版本和品牌 这是我用来执行此操作的代码段 var browserName function BrowserCheckin if navigator userAgent index
  • 如何在 C# 中为大型 HTTP 请求设置 HttpWebRequest.Timeout

    我不知道如何处理 HttpWebRequest Timeout 之前 我曾经为 Socket 对象设置超时 这很简单 超时设置发送或接收数据块的最长时间 然而 HttpWebRequest Timeout 似乎设置了整个 HTTP 请求的超
  • Bash Shell 脚本 - 检查标志并获取其值

    我正在尝试制作一个 shell 脚本 其设计如下运行 script sh t application 首先 在我的脚本中 我想检查脚本是否已使用 t 标志运行 例如 如果它在没有像这样的标志的情况下运行 我希望它出错 script sh 其
  • 使用左值引用作为非类型模板参数[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我读到以下类型允许作为非类型模板参数 整数类型 enum ptr 到对象 方法 对对象 方法的左值引用 std nullptr t 我不明白
  • 从 pandas 单元格中删除 html 格式

    我在 pandas 上有这个 DataFrame import pandas as pd df pd DataFrame CARGO 53944 Driver 57389 Driver 60851 Driver 64322 Driver 6
  • 在 LInux Mint 19.3 上安装 R4.0 时出现问题

    我尝试在 Linux Mint 19 3 上安装 R 4 0 但收到以下错误消息 The following packages have unmet dependencies r base core Depends libc6 gt 2 2
  • 如何在 Avfoundation 中正确更改采样率

    我已经完成了这个简单的程序 它的作用是同时记录和播放缓冲区 如果采样率为 44100 Hz 一切正常 但如果我将采样率更改为 16000 或 8000 它根本不会产生任何声音 或者可能是一些听不见的白噪声 为什么会发生这种情况 如何以不同的
  • Eclipse ADT 中的三星 Galaxy s4

    我想在 Samsung Galaxy S4 中测试我的应用程序 我已检查 未知来源 并启用开发人员菜单并检查 调试模式 但显示为离线状态 C Program Files x86 Android android sdk platform to
  • Webservice.wsdl 和凭据

    所以我有一个问题正在努力解决 也许一些 Flex 专家可以提供帮助 我有一个 WebService 实例 它尝试从 JBoss 应用程序服务器加载 WSDL 文件 如果我做这样的事情 webService new WebService we
  • 使用 @Valid 注释无法在本机检测到 JSR-303 错误

    为什么 Valid 注释本身不能捕获我的 JSR 303 注释 但可以使用以下方法捕获它们 WebConfig java Bean public ResourceBundleMessageSource messageSource Resou
  • 对于 IE 给出完整路径,仅需要文件名

    当从 IE 浏览器执行上传时 我的后端 org apache commons fileupload 获取完整的文件路径 对于其他非 IE 浏览器 它会获取文件名 并且出于安全考虑 这是可以的 如何获得filename只能从 IE 输入吗 是
  • 如何在playframework中从超类继承模型

    我试图了解继承是如何发挥作用的 但还没有成功 所以 我有这样的超类 Inheritance strategy InheritanceType TABLE PER CLASS abstract class SuperClass extends