[Scala Slick ]slick.SlickException: Read NULL value for ResultSet column <computed>

我为什么不看好 Spark 背后的编程语言——Scala 这几年随着数据库玩家纷纷进入大数据领域,以及 JVM 生态在性能、资源利用率和 GC 方面的劣势,C++ 和 Rust 成为了这个方向的宠儿,执行引擎方面 Databricks 没有开源的 Photon,开源领域的 Arrow,以及流式计算的 RedPanda、 RisingWave 都在冲击着上一代的技术,老牌技术的生态优势短时间内还在,但中年危机已经慢慢袭来。写到这儿,不难看出,Scala 的优势是把面向对象的编程生态融合了函数式编程的理念,既能用到生态的力量,又能在多核、并发场景下发挥函数式的优势。 阅读详情

前言

在使用Slick的时候,遇到了各种各样貌似不可控的问题。比如使用同样的语法查一张表可以,但是查另外一张表就报奇奇怪怪的错误。像今天的slick.SlickException: Read NULL value for ResultSet column <computed>。

用Scala的国内目前很少,用Slick就更少了,跌跌撞撞总算找到了答案,现在记录下来。

微信公众号:大数据报文

正文

我的代码:

//查询id为2的数据
val res = Await.result(userDAL.findById(2),Duration.Inf)
override def findById(id: Int): Future[Option[User]] = db.run(userTable.filter(_.id === id).result.headOption)

首先需要看一下自己为表定义的Schema

//这里并没有规定某一列可以是空的
class UserTable(tag: Tag) extends Table[User](tag, "user") {
    override def * : ProvenShape[User] = (id, nickName, phone, gender,password) <> (User.tupled,User.unapply)

    val id = column[Int]("id")
    val nickName = column[String]("nickname")
    val phone = column[String]("phone")
    val gender = column[Short]("gender")
    val password = column[String]("password")

}

再看一下表中的数据,发现id为2的行是空的

是了问题就出在这里。schema中没有为空值规定默认值,而又出现了不允许的空值,因此报错

 

TIOBE 6月榜单出炉!编程语言地位大洗牌,Scala未上榜 Scala,全称“Scalable Language”,由马丁·奥德斯卡尔于2001年设计,旨在创造一种高度表达性且类型安全的编程语言,能够无缝集成面向对象和函数式编程范式。Scala运行在Java虚拟机(JVM)上,这意味着它可以访问Java的庞大生态系统,同时享受Scala带来的语法糖和高级特性。下面是一个简单的类定义,展示了Scala的面向对象特性。name。 阅读详情

相关推荐

神经网络基础概念总结(小白入门自用)

神经网络人工神经网络多层感知机激活函数反向传播算法损失函数权值初始化正则化方法 人工神经网络 人工神经元:人工神经元是人工神经网络的基本单元。模拟生物神经元,人工神经元有1个或者多个输入(模拟多个树突或者多个神经元向该神经元传递神经冲动);对输入进行加权求和(模拟细胞体将神经信号进行积累和树突强度不同);对输入之和使用激活函数计算活性值(模拟细胞体产生兴奋或者抑制);输出活性值并传递到下一个人工神经元(模拟生物神经元通过轴突将神经冲动输入到下一个神经元)。 人工神经网络:大量的人工神经元以某种链接方式得来的

qq_42011158的博客 647

Slick报错:Exception in thread “main“ slick.SlickException: Read NULL value (null) for ResultSet column

一、问题描述 使用slick连接mysql数据库,查询数据,结果报错 Exception in thread "main" slick.SlickException: Read NULL value (null) for ResultSet column <computed> at slick.jdbc.SpecializedJdbcResultConverter$$anon$1.read(SpecializedJdbcResultConverters.scala:27) at sli

小蚯蚓的博客 449

混合整数规划(MIP)在资源优化中的实战应用

本文深入探讨了混合整数规划(MIP)在资源优化中的实战应用,从菜市场采购到工厂调度,再到物流配送和钢铁厂切割问题。通过分支定界法和割平面法等技术,MIP能够有效解决包含整数和连续变量的复杂优化问题,提升企业运营效率。文章还介绍了现代求解器的优化策略和实际项目中的避坑指南,帮助读者更好地应用MIP技术。

weixin_30500105的博客 90

Scala中如何优雅的处理Null

前言 如果在scala代码还在使用ids!=null,可能会被有的人嘲笑,都什么年代了,竟然还有这样的写法,NullPointerException见少了吧? 不过,据统计: Spark 源代码使用了 821 次 Option 关键字,但它也直接在像if (ids != null)。 Spark 采用混合方式,大部分情况下使用 Option,但个别时候出于性能(这里主要是为了给使用这返回提示信息)原因才使用了null。 一个很好的习惯是当有方法返回值可能为null的时候,使用Option来代替。 什么是Op

SunnyRivers 4283

uniapp 实现RFID识别的实战指南

本文提供了在uniapp中实现RFID识别的完整实战指南。核心在于通过Android系统广播机制,利用uni-app的plus对象调用原生接口,完成与RFID手持设备的“软硬件握手”。文章详细介绍了从环境准备、设备选型、核心代码实现到避坑优化的全流程,帮助开发者快速构建高效的RFID盘点或管理应用。

weixin_29161719的博客 403

485芯片AB波形正负半周的问题探讨

      本人做的一个产品,产品的其中一个接口是RS485的,我们使用的芯片是MAX13487E。MCU是STM32F103,MCU的USART通过光耦隔离后,接到MAX13487E。因为STM32F103的VCC是3.3V的,MAX13487E的VCC是5V。      部分原理图如下,上述部分电路参考了官方的参考设计,现在测试的AB波形时候发现如下问题。1.把R10和R16改为1k,示波器C...

qq_26308521的博客 1万+

少年:Scala 学一下

思维导图已同步Git: 前言 一个不太恰当的比喻:Java像白话文,Scala像文言文。 庙堂之上,朽木为官,殿陛之间,禽兽食禄;狼心狗行之辈,滚滚当道,奴颜婢膝之徒,纷纷秉政。以致社稷丘墟,苍生涂炭. 豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越 … 落霞与孤鹜齐飞,秋水共长天一色。渔舟唱晚,响穷彭蠡之滨;雁阵惊寒,声断衡阳之浦 一开始学Scala的时候可能会感觉各种不适应,尤其是写惯了C++/Java这样的语言后。感觉更重要的思想跟编程习惯上的改变。一旦写多了熟练使用.

sowhat 3940

【OpenClaw从入门到精通】第19篇:OpenClaw电商实战:从零搭建比价+库存监控+自动调价全自动化系统(2026实测附完整代码)

2026年OpenClaw成为全球最火开源项目,电商行业因其场景高频、数据标准化成为其核心落地领域。本文针对电商从业者面临的比价繁琐、库存混乱、调价滞后三大痛点,基于OpenClaw的“接入层-执行层-决策层”三层架构,从零拆解智能比价、多平台库存监控、动态自动调价三大核心场景的实现逻辑。文中包含完整的环境配置、技能安装、代码实现(含Python脚本与YAML配置)、执行结果验证,同时补充关键算法原理与避坑指南,兼顾新手入门与进阶提升。读者可直接参考本文实操流程,快速搭建属于自己的电商自动化系统,实现7×2

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2237

我为什么放弃scala

说起来放弃scala已经快一年多了吧,今天早上突然心有所感,觉得还是写出来记录一下吧。   首先呢,所谓放弃,其实也不完全,我手上还有新作的代码仍然是选择scala的,因为scala支持多行字符串,而我的某些程序几乎80%的代码都是sql,scala代码只是作为胶水存在,这个情况下,scala显然比java方便。不过,因为多行字符串选择scala这样的理由显然太特殊了,所以从一般意义上说,我...

iteye_15055的博客 1552

STEP 7-Micro/WIN SMART 编程软件:从入门到精通的使用指南

通过不断实践,熟悉软件的各项功能和操作技巧,工程师可更好地应对工业自动化控制中的各种挑战,开发出高效、稳定的控制程序。项目的基本组件是构成程序的核心元素,包括:程序块(主程序 OB1、子程序和中断程序)、数据块(给 V 存储器赋初值)、系统块(硬件组态和参数设置)、符号表(用符号代替存储器地址,使程序更易理解)以及状态图表(监视、修改和强制变量状态)。下载程序时,单击工具栏上的 “下载” 按钮,在弹出的下载对话框中选择要下载的块(程序块、数据块、系统块),单击 “下载” 即可。

电工 5569

人形机器人快速原型开发:运动学建模实践

人形机器人是最接近人类形态的智能载体,在服务、医疗、灾难救援等场景中潜力巨大。但开发人形机器人面临一个核心挑战:如何快速验证"让机器人动起来"的基础能力?本文聚焦运动学建模这一关键环节,覆盖从理论建模到代码实现的全流程,帮助开发者在1-2天内完成一个简单人形机器人的运动学原型。本文采用"概念→原理→实战"的递进结构:先通过生活化案例理解运动学核心概念,再用数学工具拆解建模过程,最后通过Python代码+仿真工具完成完整实践。运动学建模:研究机器人关节运动与末端执行器位置/姿态的数学关系(不涉及力和质量)

AI天才研究院 1077

Scala为什么是大数据第一高薪语言

为什么是Scala 虽然在大数据领域Java的使用更普及,Python也有后来居上的势头,但Scala一直有着不可动摇的地位。我们熟悉的Spark,Kafka,Flink都是由Scala完成了其核心代码的开发。 所以掌握Scala不仅可以学习大数据组件的源码,而且会极大的提升大数据开发的效率。 这也是Scala的薪资水平一直遥遥领先的原因。 根据2019年全球编程语言薪资统计,排名前几...

qq_39581763的博客 3818

二、TCP/IP协议之网络层(IP地址的格式、分类、报文格式)

数据报每经过一个路由器,路由器都要重新计算一下首部检验和,若首部未发生变化,则此结果必为 0,于是就保留这个数据报。对于网络号相的设备,无论实际所处的物理位置如何,它们都是处在同一个网络中。在首部的固定部分的后面是一些可选字段,其长度是可变的。IPv4 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。表示数据报在网络中的寿命,英文缩写是 TTL(Time To Live),功能是“跳数限制”。地址的网络号码字段用来标识一个网络,网络号码字段的前几位用来区分。

锦慈的技术博客 184

盘点日渐衰落的八种编程语言

今天给大家盘点日渐衰落的八种编程语言,有你在用的吗,一起来看看吧

IT技术分享社区 892

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

scala+play+slick + mysql

前提: 假设你配置好了scala,play的环境变量,如果这样都有问题,请自行Google,百度 从命令行进入到你的工作目录(workspace),执行play new helloworld。等命令执行完,项目(helloworld)就创建成功了。关于项目的结构,也不多讲网上也有很多这样的文章。cd helloworld, 进入项目根目录,执行play,再执行idea,这

北极鱼 4336

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java项目集成scala_在至少一半的Java项目中,Scala的使用效果不如Java。

java项目集成scala 所以,我做了一个帖子关于与有关Scala的是“硬”的Java开发人员的很大一部分后同意。 这篇文章引起了相当多的“讨论”,其中很多都曲解了我的帖子。 我正在发表一篇文章,希望就谁,为什么和我的动机会更加清楚。 首先,关于我。 我叫大卫·波拉克(David Pollak)。 自2006年11月以来,我一直活跃于Scala社区。我是Lift网络框架项目的创始人。 以下...

471

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

淡黄的长裙,蓬松的头发,Scala是个啥?干啥得靠它

笔者今天开始记录一下Scala语言的基础学习。Scala语言一般很少独立使用,而是作为在大数据领域的开发语言,是Spark的底层语言,也是Spark的首选调用语言。Scala简介 ...

大数据之眸 491

Scala语言会取代Java的吗?

  曾经有人问Java的创始人高斯林这样一个问题,“除了Java语言以外,您现在还使用JVM平台上的哪种编程语言?”他毫不犹豫的说是Scala。     Scala到底是什么?在目前众多的JVM语言当中,Scala无疑是最引人注意的语言之一。Scala是一个静态语言,更适合大型工程项目,Scala直接编译成Java字节码,性能接近Java。Scala是一个多范式的语言,你可以混合使用函数式和...

dengkane的博客 3万+

SparkSession中出现Exception in thread "main" java.lang.AbstractMethodError

1.使用SparkSession时,出现异常:Exception in thread "main" java.lang.AbstractMethodError 2.查看pom.xml文件,是否是因为spark-core和spark-sql的版本不匹配导致? &lt;dependency&gt; &lt;groupId&gt;org.apache.spark&lt;/groupI...

说文科技,做有态度的研究。 5402

slick使用普通的sql操作数据

1.无论使用slick的"集合"来操作数据还是使用sql来操作数据,最终还是构建DBIOAction,让后交给DB处理,类是FP中monid的action 需要注意的是run Run an Action asynchronously and return the result as a Future sqlu,sql,tsql的字面意思来构建一个DBAction sqlu是用于单行的DM

u013571243的专栏 2224

学习大数据的第一步-搭建Scala开发环境,以及使用Intellij IDEA开发Scala程序

# 1、为什么要学习Scala语言? 1. 结合Spark处理大数据 这是Scala的一个主要应用,而且Spark也是那Scala写的。 2. Java的脚本语言版 可以直接写Scala的脚本,也可以在.sh直接使用Scala。 3. 代替Java Scala的编程风格更简洁,当然也很可能降低可读性,不过Java语言还是有其优势。

不学习傻了吧 7万+

敲黑板,大数据重点之scala你了解多少?

大数据如今可以说是各个行业争相追捧的香饽饽,其强大的功能和特点,引发了整个市场的变动,促使各个企业都在如火如荼的进行大数据方面的建设。而谈到大数据,就不得不提其概念中说包含的scala,那么对于scala而言你了解多少呢? 其实,互联网上关于scala的解释并不少,这里只是简单的分一下其概念,希望对大家有所帮助。 首先,scala是一门多范式的编程语言 设计初衷是实现可伸缩的语言、并集成...

海牛-大数据的博客 445

spring boot 错误,求大神帮解决

Exception in thread "main" java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/C:/Users/wo/.m2/repository/com/amazonaws/aws-java-sdk-core/1.11.125/aws-java-...

weixin_30872733的博客 667
上一篇: Scala中的Option/Some/None和Try/Success/Failure
下一篇: 【已解决】使用Slick的时候出现OPTION SQL_SELECT_LIMIT=DEFAULT错误
iFence
博客等级 码龄9年 8051粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值