草庐IT

java - 当我的项目中没有任何实体时,如何将 native 查询映射到 POJO?

我正在将ETL过程从工具转换为Java批处理API应用程序。在这个ETL过程中。在当前版本(使用该工具)中,我们有许多连接不同表的SQL语句以生成所需的输出。转换为Java,JPA现在可用。我想使用native查询。这很好,因为它不需要为查询中使用的每个表创建实体,而且我可以将POJO用于查询结果(而且,我不需要重写查询)。读书thisanswer我知道我可以使用@SqlResultSetMapping。问题是我的项目中没有任何实体,所以我不知道把这个注解放在哪里。有什么地方可以放置此注释以便实体管理器找到它吗?PS:在我的概念证明中,我目前正在手动将对象数组转换为POJO,但我真的不

弹簧数据JPA生成的UUID字段为null

我有一个名为“预订”的实体,该实体具有生成的ID字段,我用作主要键。它可以正常工作。我想添加另一个字段,即将在RESTAPI中用作资源标识符。我有一个PostgresDB,并设置了自动生成的字段:uuidcharactervarying(36)notnulldefaultuuid_generate_v1mc()在创建时,DB生成ID和UUID恰好,但是在Java代码中,UUID字段为null。我的实体看起来像这样:@EntitypublicclassBooking{@Id@SequenceGenerator(name="booking_id_seq",sequenceName="booking

java - 在 MySQL 中保留 java LocalDate

我正在使用SE8、MySQL5.6(Connector/J5.1)、JPA2.1编写Java客户端应用程序。当我尝试保留具有ID(int自动递增)、日期(LocalDate)的实体时。它抛出一个异常说:InternalException:com.mysql.jdbc.MysqlDataTruncation:Datatruncation:Incorrectdatevalue:'\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x07\x03\x00\x00\x07\xDF\x03\x

java - JPA EclipseLink 数据库异常 : 'table foo.SEQUENCE doesn' t exist'

我已经更新了问题,以便两个表现在都使用自动递增。持久化到MESSAGES表的问题可能是数据库架构的问题吗?在尝试这样持久化MessageBean时:privatevoidpersist(MessageBeanmessageBean)throwsException{LOG.info("loading.."+messageBean);Messagesmessage=newMessages(messageBean);emf=Persistence.createEntityManagerFactory("USENETPU");em=emf.createEntityManager();em.ge

java - jpa 合并非托管实体

我想在另一个PersistenceContext中管理一个非托管实体。我读到这可以通过合并来实现:em.merge(user);但如果我这样做,它不会添加到上下文中:booleanisManaged=em.contains(user);始终为假。即使我做了以下:Userdbuser=em.find(User.class,user.getId());em.merge(user);booleanisManaged=em.contains(user);dbuser和user完全一样。我做错了什么?我正在使用JPA、MySqlDB、JBossEAP6.1 最佳答案

sql - 如何在 JPA/Hibernate 中执行原生 SQL 脚本?

我有一个带有数据库转储的SQL脚本。我如何使用Hibernate的EntityManager执行它?我这样试过:EntityManagermanager=getEntityManager();Queryq=manager.createNativeQuery(sqlScript);q.executeUpdate();但它仅在sqlScript包含单个SQL查询时有效,而我需要运行多个插入和其他复杂的东西。关系型数据库:Oracle数据库11g快捷版11.2.0.2.0版-64位生产 最佳答案 用beginendblock包装您的查询。

java - Spring Boot 。从 MySql 模式自动创建实体类

在过去的7天里,我一直在为我的Mysql库开发EER图模型。这是一个相当复杂的模型,有很多联系和属性。现在我知道如果你在application.properties中使用spring.jpa.hibernate.ddl-auto=update,springboot会根据你的实体类(包括外键和其他设置)自动创建表,但是是否可以在之后创建实体类根据具有模式的表向DataSource对象提供良好的凭据?重点是我可能还需要3-4天的后端编码来创建具有所有属性、关系等的所有类。鉴于它只能以一种正确的方式完成,基于模式表,这并不是真正的火箭科学。为什么不只做一次呢?有这个问题Automatical

java - 在 JPA 中插入多行的最有效方法

我有父/子单向关系。当我检查日志时,我发现每个子行都有一个单独的插入查询,相当于:insertintochildTable(col1,col2)values(val1,val2);insertintochildTable(col1,col2)values(val3,val4);在单个查询中插入所有行不是更有效吗?类似的东西:insertintochildTable(col1,col2)values(val1,val2),(val3,val4)有没有办法强制JPA生成多行插入而不是单行插入?编辑:我目前正在使用级联插入,因此我插入了父级,而子级的插入是自动生成的。我更愿意继续使用该方法,

java - 将 MySQL JSON 列映射到 hibernate 值类型

在Java代码中使用JSON列的最佳实践是什么?具体来说,我对能够使用hibernate在MySQL数据库中保存和查询JSON列很感兴趣。@EntitypublicclassMyEntity{privateStringmyField;//thisfieldisajsoncolumnpublicMyEntity(){}} 最佳答案 在Hibernate中有一个很好的库来处理JSON类型。它叫做HibernateTypes,您可以向下滚动到MySQL部分以获取正确的示例。以及一些在查询中使用MySQL的JSONAPI的示例:Howtos

mysql - 映射一个@Lob 值的 Map

这是我模型的一部分:@EntitypublicclassEntry{@Id@GeneratedValueprivatelongidentifier;@ElementCollection@Column(nullable=false)privateMaptitles;@ElementCollection@Column(nullable=false)@LobprivateMapcontents;//Gettersandsetters,otherfieldsandmethods}我使用@Lob注释是因为map“内容”的值可能很大。请注意,我不关心映射“内容”的键如何映射到数据库。我只是找不到一