Tag: jpa

如何在hibernate上指定Double的精度?

我尝试从hibernate注释创建一个表。 我需要一个Double类型的列,其长度指定为:(10,2)。 所以SQL语法显示如下: … DOUBLE(10,2) …. 我试过这样做: @Column(length = 10, precision = 2) … 但是当我查看我创建的表时,没有指定Double列的长度。 hibernate是否有解决方案或是否需要手动更改表配置? 谢谢!

JPA主键自动生成

我的主要密钥实体如下所示 @GeneratedValue(strategy= GenerationType.TABLE) private Long id; 当我跑,我得到错误 无法获取或更新下一个值;嵌套exception是org.hibernate.exception.SQLGrammerException:无法获取或更新下一个值 但是当我改变的时候 @GeneratedValue private Long id; 没有错误抛出。 我想在oracle db上为每个表生成唯一的主键。

将jpa实体转换为宁静资源的好策略是什么?

Restful资源并不总是与您的jpa实体进行一对一映射。 我认为有一些问题,我试图弄清楚如何处理: 当资源具有由多个实体填充和保存的信息时。 当实体中有更多信息要作为资源发送时。 我可以使用Jackson的@JsonIgnore但我仍然会遇到问题1,3和4。 当实体(如聚合根)具有嵌套实体并且您希望包含其嵌套实体的一部分但仅包含某个级别的嵌套作为您的资源时。 当你想要将一个实体的一部分排除在一个父实体的一部分时,但当它的一部分是另一个父实体时排除一个单独的部分。 Blasted循环引用(我使用Jackson的@JsonIdentityInfo主要使用@JsonIdentityInfo ) 可能的解决方案:我能想到的唯一方法是处理所有这些问题,就是创建一大堆“资源”类,这些类将具有构造函数,这些构造函数需要实体来构建资源并为此放置必要的getter和setter。资源就可以了。 这有点矫枉过正吗? 为了解决2,3,4和5,我可以在实际实体上进行一些前后处理,然后再将它发送给Jackson,将我的pojo序列化或反序列化为JSON,但这并不能解决问题1。 这些都是我认为其他人会遇到的问题,我很好奇其他人提出的解决方案。 (我目前正在使用JPA 2,Spring MVC,Jackson和Spring-Data,但对其他技术开放)

Spring JPA(Hibernate)没有类型的限定bean:javax.persistence.EntityManagerFactory

我正在使用Spring-boot,因此在Tomcat 7中部署了一场战争。当我启动应用程序时,我得到以下内容: Dec 30, 2013 7:41:06 PM org.apache.catalina.core.ApplicationContext log INFO: Initializing Spring FrameworkServlet ‘dispatcherServlet’ 2013-12-30 19:41:06 INFO DispatcherServlet:461 – FrameworkServlet ‘dispatcherServlet’: initialization started 2013-12-30 19:41:06 INFO SimpleUrlHandlerMapping:315 – Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2013-12-30 19:41:06 INFO RequestMappingHandlerMapping:181 – Mapped “{[/user],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}” onto public com.cloudfordev.controlpanel.orm.User com.cloudfordev.controlpanel.GetController.getUser(int) 2013-12-30 19:41:07 INFO SimpleUrlHandlerMapping:315 – Mapped […]

@Resource UserTransaction和EntityManager.getTransaction()之间有什么区别

谁能解释一下有什么区别: @Resource UserTransaction objUserTransaction; 和 EntityManager.getTransaction(); 什么是容器管理交易? 如果我想在事务中的表中插入三行,我应该如何在会话外观中执行此操作。

从JPA实体反向设计DDL

我正在玩一些JPA的东西,改变映射以了解它们应该是什么样的等等。这是基本的实验。 但是我找不到一个简单地读取我的实体然后为我生成表模式的工具。 我试图在JBoss工具中找到类似的东西,但是nada。 Eclipse集成将是一个巨大的优势,但我会采取命令行工具或ant任务。 有任何想法吗?

Hibernate @Enumerated映射

Hibernate提供@Enumerated注释,它使用ORDINAL或STRING支持两种类型的Enum映射。 当我们使用EnumType.STRING映射时,它采用Enum的“名称”而不是Enum的toString()表示。 在数据库列仅包含一个字符的情况下,这是一个问题。 例如,我有以下枚举: public enum Status{ OPEN{ @Override public String toString(){ return “O”;} }, WAITLIST{ @Override public String toString(){ return “W”;} }, COMPLETE{ @Override public String toString(){ return “C”;} } } 当我使用@Enumerated(EnumType.STRING)持久化枚举Status.OPEN ,Hibernate尝试存储在数据库中的值是OPEN。 但是,我的数据库列只包含一个字符,因此会抛出exception。 解决此问题的一种方法是将Enum类型更改为包含单个字符(如STATUS.O , STATUS.W而不是STATUS.OPEN , STATUS.WAITLIST )。 但是,这降低了可读性。 有关保持可读性以及将Enum映射到单个字符列的建议吗? 谢谢。

在JPA中使用Spring Security

我是Spring的新手。 我们正在使用弹簧安全function。 数据库连接:JPA的eclipselink实现。 数据库:MySql 使用spring security时,身份validation提供程序的配置如下, – 但是在JPA中我们没有定义数据源,我们使用持久性单元和提供者jpa.PersistenceProvider. 那么我们如何配置身份validation提供程序以便使用JPA进行数据库连接? data-source-ref字段究竟应该包含什么才能使用数据库进行身份validation? 先谢谢你。

如何在MySQL数据库和JPA中使用Spring Boot?

我想用MySQL和JPA设置Spring Boot。 为此我创造: 人 package domain; import javax.persistence.*; @Entity @Table(name = “person”) public class Person { @Id @GeneratedValue private Long id; @Column(nullable = false) private String firstName; // setters and getters } PersonRepository package repository; import domain.Person; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.repository.CrudRepository; public interface PersonRepository extends CrudRepository { Page findAll(Pageable pageable); } PersonController package […]

带有JPA + Hibernate(或类似)和Apache Derby嵌入式DB的Java独立应用程序

我想创建一个使用Apache Derby Embedded DB的Java独立Java应用程序。 我想使用JPA因为我对它非常熟悉并且可能超过Hibernate(但是如果它变得更容易,则欢迎其他人使用JPA)。 是否有任何示例在Derby嵌入式数据库上使用JPA而不是Hibernate? 我在寻找,但我找不到任何有用的示例代码。 我想要一个教程,它将告诉我需要在我的类路径中添加哪些库,哪些是基本文件以及我需要做什么。