【发布时间】:2015-11-20 19:26:33
【问题描述】:
类似这个问题:
ORA-00904: : invalid identifier Issue with Hibernate Dependent objects program
我正在尝试使用休眠进行批量插入。每当我尝试执行 session.save 或 session.saveOrUpdate 时,hibernate 都会抱怨我的标识符无效
堆栈输出
2015-11-20 14:17:37 ERROR : ORA-00904: "USERATTRID": invalid identifier
实体
public class Attribute {
@Id
@GenericGenerator(name = "increment", strategy = "increment")
@GeneratedValue(generator = "increment", strategy = GenerationType.SEQUENCE)
private int USERAttrID;
private long userNumber;
private String attribute;
private String value;
private String description;
private LocalDateTime updatedDate;
private LocalDateTime createdDate;
hibernate 应用改进后的命名约定后,数据库如下所示
USER_ATTRID
ATTRIBUTE
USER_NUMBER
DESCRIPTION
VALUE
CREATED_DATE
UPDATED_DATE
如果我使用 repository.save,那么代码可以正常工作。 crud 存储库似乎知道如何将我的实体映射到数据库,但 hibernate 的会话不知道。
我在这里看到了一些解决方案:
1.使用hibernate默认的默认命名策略。表被命名为 USERATTRID。除了使列更难阅读之外,我不确定这会产生什么影响。
2.使用这里的教程将hibernate与crudrepository结合起来
http://frightanic.com/software-development/jpa-batch-inserts/
3. 弄清楚如何获取hibernate 的session.save 以使用改进的NamingConvention 映射器。任何人都可以帮助我或提供其他建议吗?
4.我想我也可以手动映射列:/。呃,这很混乱,你现在必须手动进行日期的所有转换:/
【问题讨论】:
标签: java spring hibernate session spring-boot