问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问:在编写JAVA EE程序时出现下面的错误该如何解决?

发布网友 发布时间:2024-10-05 08:19

我来回答

5个回答

热心网友 时间:2024-10-05 08:43

hibernate 配置文件里边没指定id。数据库的设计和操作中,我们通常会给表建立主键。
主键,可以分为自然主键和代理主键。
自然主键表示:采用具有业务逻辑含义的字段作为表的主键。比如在用户信息表中,采用用户的身份证号码作为主键。但是这样一来,随着业务逻辑的变化,主键就有可能要更改。比如,假设哪天身份证号码升级成19,2位,那。。。。。。。
代理主键:在表中人为的增加一个字段,该字段并没有表示任何的业务逻辑,仅仅用来标识一行数据。比如说在用户信息表中,增加一个用户ID的字段。用来表示该条用户信息的记录。

通常情况下,用的比较多的是代理主键的形式。而且,我们习惯于于让该主键字段能够自动增长,来保证其唯一性。但是,不同的数据库自动增长的方式并不是相同的。如在SQLSERVER中,用identity,MYSQL中,有increment,ORACLE中通常采用sequence。这样一来,在数据库的主键列操作上,便会显得比较麻烦。
但是在Hibernate中,提供了主键生成策略。下面是比较常用的几种:
1:assigned
----表示在新增数据时由应用程序指定主键的值。主要针对主键是采用自然主键的形式。这种方式,适用于主键列不是自动增长列。

其缺点为在执行新增操作时,需查询数据库判断生成的主键是否已经存在。
2:increment
----表示新增数据操作时由hibernate自动生成主键值。其生成的值为:先查询该主键列的最大值,然后在最大值的基础上加上1.适用于采用代理主键形式的主键列。同样不能用于主键列是自动增长的表。但是,该主键生成策略也有些缺点。
(1)新增数据前先查询一遍,影响了性能。
(2)主键的类型只能为数值型的int或者long
(3)并发操作时的冲突问题。
3:identity
----不如说是为sqlerver数据库量身定做的。主要适用于sqlserver数据库的自动增长列的表。
4:native
----表示根据不同的数据库采用不同的主键生成策略。比如,当前数据库为sqlserver,则会采用identity,如为oracle,则采用

oracle中的sequence等。区分数据库的不同是以hibernate主配置文件中sessionFactory中配置的数据库方言。

5.uuid

* 唯一主键生成办法。从Hibernate中提取出来

优点:避免了生成ID 时,与数据库的再次交道,性能上较高。但对于有的开发人员不太习惯这种id生成方式,UUID生成的32为的字符串,不同于identity 从1开始的整数。

Xml代码
1.<id name="实体类属性名" type="java.lang.Integer">
2. <column name="对应表中主键字段名" />
3. <generator class="assiged|increment|identity|native|........" />
4.</id>
<id name="实体类属性名" type="java.lang.Integer">
<column name="对应表中主键字段名" />
<generator class="assiged|increment|identity|native|........" />
</id>

采用hibernate的主键生成策略,就可以比较灵活和方便的对表中的主键字段进行操作了。而且,不同的数据库,不同的主键形式,也只需要修改下映射文件就可以了

第二张图明显是你struts2标签方面的问题,打个断点调试就应该能解决。

热心网友 时间:2024-10-05 08:37

ID为空,或者 没传这个参数吧 没看到具体代码,不好说!

热心网友 时间:2024-10-05 08:40

因为你数据库中某个字段是not null的,但你却传了null值。所以报这个错

热心网友 时间:2024-10-05 08:44

hbm配置文件 ID没赋值

热心网友 时间:2024-10-05 08:36

根据ID去查询数据时出错了,debug下代码看下ID是否为空
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 我明白java应用程序的入口是mian()方法,而为什么说JAVA小应用程序... 守护甜心 三颗蛋与恋爱王牌怎么存档 在厂上班拿五千块要交多少税啊 民生银行什么性质银行 民生银行是什么性质 灵活就业人员养老保险优惠政策 肯尼斯·格雷厄姆简介 肯尼斯·格雷厄姆生平 影响孩子们一生的经典:柳林风声作者简介 用什么样子的显卡划算? 帮我换下电脑配置..好100追分 RADEON 9550 驱动问题,急啊!! ATI Radeon 9550和8100GS哪个好? 9550显卡玩魔兽世界提高桢数 求大神解读一下VHDL的这段代码,尽量详细点 ...点地方我想放一个鱼缸,家是坐北朝南的,请大师指点一下这样好不好... ...ELSE、ELSIF是怎么用的啊? 高手详解(通俗易懂)。谢谢!!! 请风水大师指点如图所示鱼缸应摆放在什么位置旺财.谢谢!在线等_百度... 求大师指点鱼缸的摆放位置和养鱼数目。 女 1986.03.03 五行属火_百度... 请问。家里想买个鱼缸。也不懂什么风水。不知道放哪里好。请懂的老 ... 角膜病手术费用 编写JAVA程序时,出错提示:使用未经检查或不安全操作;要了解详细信息,请... applet中有init()方法了还需要main()方法了吗? ...++编译运行java程序,出现问题:CreateProcess() failed with error... 角膜移植费用多少钱 眼角膜手术大概需要多少钱 人工眼角膜多少钱 梦幻群侠传:龙在天涯游戏信息 ...形的两条边分别是12厘米和9厘米,第三条边一定大于[]厘米而小于[]厘... ...三角形,一条边长12厘米,另一条边长8厘米,第三条边的长度在哪个范围内... ...一条边是8厘米,另一条边是5厘米,第三条边一定大于多少? ...分别是9厘米和2厘米,那么第三条边一定大于( )厘米,小于( )厘_百度... 一个三角形的一条边长是8厘米,另一条边长12厘米,第三条边的长度一定大于... 一个三角形的两条边分别是8厘米和12厘米,第三条边必须比( ?)厘米短... 科目一和科目四哪个难度大? 科目一与科目四区别在哪?快来检查一下你的备考方法是否正确吧!_百度... 三国中武力最高的前十名是谁?智力最高前十名呢? 三国时期哪个武将武力最高(前10位)? 为什么杰斐逊在任命州长史卸甲归田? 再请教一个关于ping的问题,谢谢。