草庐IT

java - 为什么我的 @OneToMany 属性会出现主键冲突?

我有一个实体:@EntitypublicclassStudent{@GeneratedValue(strategy=GenerationType.AUTO)@Idprivatelongid;@OneToManyprivateSetcourses;}当我尝试保留该类型的第一个实体时,它工作正常,但是当我尝试保存一个与已存储实体具有相同类(class)的新学生时,它失败了。这是错误:insertintostudent_courses(student,courses)values(?,?)[23505-172]];nestedexceptionisorg.hibernate.exceptio

java - 在 JPA 中选择具有 1 个条件的每个用户最近日期的行

我有这个实体,我想为每个设备列出属性消息=1的最后一个事件@Entity@Table(name="t_device_event")@NamedQueries(value={@NamedQuery(name="DeviceEvent.findWithMessageActive",query="fromDeviceEventasde1wherede1.message=1andde1.received="+"(selectmax(de2.received)fromDeviceEventde2"+"wherede2.device.id=de1.device.id)"),)publicclass

java - 命名查询 : Best practices

在JPA中创建命名查询时,对于这些查询的名称是否有可接受的最佳实践(例如EntityName.allActive或findAllActiveFoos等)并且是否在它们查询的实体类中或在实用程序类中一起声明这些命名查询好吗? 最佳答案 不,没有涵盖任何复杂案例的广泛接受的最佳实践。同样,一般来说,没有太多可用于JPA的样式指南。似乎被普遍接受并且在书籍中也普遍使用的是从实体名称开始查询。我会选择EntityName(以保证持久性单元中的唯一名称)结合操作和参数。Person.findByAgePerson.findByAgeAndFi

java - 使用 EclipseLink

我对Java和Eclipse还是个新手,我正在尝试让我的应用程序连接到数据库。我想我想使用EclipseLink,但所有有关该问题的文档都假设您已经了解一切。我不断收到指向本教程的链接:http://www.vogella.de/articles/JavaPersistenceAPI/article.html但它基本上没有用,因为它不会告诉您如何做任何事情。对于安装部分,它告诉您下载EclipseLink并为您提供下载页面的链接,但没有告诉您下载后如何使用它。下载页面也没有。我使用Eclipse中的“安装新软件”选项将EclipseLink安装到Eclipse中,但它给了我4个不同的选

java - 没有名为 X 的 EntityManager 的持久性提供程序

我正在使用JPA开发JavaSE应用程序。不幸的是,我在调用后得到了null:Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);下面你会发现:调用EntityManagerFactory并意外返回null的代码片段我的persistence.xml文件我的项目结构我的代码片段:publicclassMain{privatestaticfinalStringPERSISTENCE_UNIT_NAME="MeineJpaPU";privatestaticEntityManagerFactoryfactory;publ

java - 使用@EmbeddedId 进行映射时出现 Eclipse 错误

我有一个带有复合键的实体,所以我使用了@Embeddable和@EmbeddedId注释。可嵌入类如下所示:@EmbeddablepublicclassDitaAdminAccountSkillPKimplementsSerializable{@ManyToOne@JoinColumn(name="admin_id")privateDitaAdminadmin;@ManyToOne@JoinColumn(name="account_id")privateDitaAccountaccount;//constructor,getters,setters...}以及使用它的实体:@Entit

java - 了解 Hibernate 中的 mappedBy 注解

我试图理解JPA中@OneToMany注释的mappedBy属性。我创建了以下示例,其中客户有一个订单列表:@EntitypublicclassCustomer{@Id@GeneratedValuepublicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}privateIntegerid;@OneToMany(mappedBy="customer")@OrderColumn(name="orders_index")publicListgetOrders(){returnorders;}publicvoid

java - JPA 枚举比较不等于失败

我正在使用JPA2.1.2。我想执行带有where子句的选择查询。where语句应该比较(不等于)存储在数据库(字符串)中的枚举。@Entity@Table(name="MY_ENTITY")publicclassMyEntityimplementsSerializable{@Column(name="REMINDER_STATE")@Enumerated(EnumType.STRING)privateReminderStagereminderStage;...}classDaoImpl{....@OverridepublicListfindAll(ReminderStagestage

java - Hibernate:@ManyToOne(fetch = FetchType.LAZY) 不适用于非主键引用列

我有2个表:Order[OrderId(PK),OrderShipmentCode,...]和Shipment[ShipmentId(PK),ShipmentCode,...]。在Order类中,我声明了shipment字段如下:@ManyToOne(fetch=FetchType.LAZY)@JoinColumn(name="OrderShipmentCode",referencedColumnName="ShipmentCode",insertable=false,updatable=false,nullable=false)privateShipmentshipment;当我获得

java - 具有 JPA 部署的 Google App Engine 应用程序挂起

我有一个javaGAEWeb应用程序,其中datanucleus作为JPA提供程序。在我的机器上本地部署时-部署挂起(需要几分钟)。查看任务管理器,我有一个正在运行的javac进程。知道出了什么问题吗? 最佳答案 同意。这是GAE的问题,因为它需要一个6permutationCompilation,之后应用程序将被部署并显示在浏览器上。我觉得这只是GAE而不是JPA的问题。我开发了一个类似的应用程序,如果你觉得它是因为JPA,你可以检查相应的数据库管理员,看看有多少线程正在为用户打开。如果您似乎发现有些垃圾没有被收集,请检查您的代码