草庐IT

java - Hibernate 中的三元(和 n 元)关系

问题1)我们如何使用Hibernate对三元关系建模?例如,我们如何对呈现的三元关系建模here使用Hibernate(或JPA)?注意:我知道JPA2添加了一些使用映射构建三元关系的结构。但是,这个问题假定JPA1或Hibernate3.3.x,我不喜欢使用映射来对此建模。(来源:grussell.org)(来源:grussell.org)理想情况下,我希望我的模型是这样的:classSaleAssistant{Longid;//...}classCustomer{Longid;//...}classProduct{Longid;//...}classSale{SalesAssist

java - 使用多个数据源时 Spring 中的多个实体管理器问题

我的applicationContext.xml中有两个实体管理器,它们对应于两个不同的数据库。我可以使用entityManager1轻松查询database1,但是当我尝试使用entityManager2访问database2时,我没有得到任何结果。我正在使用Spring+Hibernate+JPA。这是我的ApplicationContext.xmlcharacterEncodingUTF-8characterEncodingUTF-8classpath*:META-INF/persistence.xmlclasspath*:META-INF/persistence2.xml这是我

Java JPA : Performant check if Entity is already in DB

使用JPA检查实体是否已在数据库中的最佳方法/最佳实践是什么?我正在编写一个将主机信息添加到数据库的客户端。例如附加的存储lun、hba等...如果我想为主机添加一个Lun,我必须检查该lun是否已经在数据库中。(Lun可以附加到另一个主机上)。我看到了2种可能性:我选择了Lun,检查它是否已经在数据库中尝试插入Lun并检查异常(唯一约束)有人有这方面的经验吗?BR,雷内 最佳答案 entityManager.find(SomeEntity.class,id)Returns:thefoundentityinstanceornulli

java - 如何使用 JSF 2.0 下载存储在数据库中的文件

我需要下载存储在数据库中的文件。我想我正确地执行了查询并调用了它我只是不知道如何将它连接到JSF页面中的按钮。我还想知道,在将图像传递到JSF页面之前,我是否必须将该图像保存在服务器的文件夹中。如果是这样,我该怎么做?这是我用来从数据库返回byte[]的查询:@NamedQuery(name="downloadGarbage",query="SELECTg.fileFROMGarbagegWHEREg.id:idParam")@EntitypublicclassGarbageimplementsSerializable{@Lob@Column(nullable=false)privat

java - Play Framework JPA : how to implement one-to-many relationship?

我有一个Posts模型,每个帖子还包含Blocks(也是一个模型)。我正在为这个网站使用PlayFramework,我想做的是在一个页面上显示X个帖子及其所有block。JPA(或PlayFramework的实现,不知道它是哪个)有find()方法,我可以用它在我的Controller中查询帖子,然后我会将帖子列表发送到我的像这样看:render(postList);我想知道什么是将每个帖子的block发送到View的最佳方式。我可以向我的Post模型添加一个getBlocks()方法,它发回一个blocksList,并从View中调用它,但这对我来说似乎很困惑,而且它会破坏MVC的目

java - 外键中的 JPA/Hibernate OneToOne Null

我有以下两个具有双向OneToOne关系映射的实体,数据访问由HibernateEntityManagerv.“3.5.1-Final”提供。@Entity@Table(name="details")publicclassDetails{privateLongid;privateUseruser;publicvoidsetUser(Useruser){this.user=user;}@OneToOne@JoinColumn(name="user_id")publicUsergetUser(){returnuser;}@Id@GeneratedValue(strategy=Generat

java - 能否说服 JPA 在例如 UUID 和字符串之间进行转换?

我有一个Java对象,它有一个UUID字段。我希望能够以明显的方式将这个对象持久化到数据库中;然而,Basic映射将使用Java序列化来编写它,而我希望UUID以其明显的字符串形式出现。有没有办法为该字段提供一个UUID字符串转换器到JPA,该字段将在读取和写入时使用,以便我可以自然地处理这种类型? 最佳答案 ChrisLercher评论Note:StartingfromJPA2.1,a@ConvertannotationcanbeusedwithanAttributeConverter.这种方法效果很好,并且与任何JPA提供程序兼

java - 特性切换 Java 注解

如何切换java注释?简单的功能切换:-如果(启用切换)做xSpring允许使用“配置文件”来切换bean。我使用它们,它们很好,但我想在字段或类上切换注释。我该怎么做?用例,我有一个带有jpa注释的类。我希望能够通过配置标记某些字段在某些环境中为@transient。 最佳答案 如前所述,尝试“禁用”注释虽然有可能,但并不是解决问题的最佳方法。正如AdrianShum所说,您应该改变框架处理注解的方式。在您的情况下,您的JPA实现(例如Hibernate)下应该有一些ORM提供程序。大多数ORM都有一些方法来提供自定义功能,例如在

java - where 子句中的子查询与 CriteriaQuery

谁能给我一些关于如何将这种子查询放入CriteriaQuery的提示?(我正在使用JPA2.0-Hibernate4.x)SELECTa,b,cFROMtableAWHEREa=(SELECTdFROMtableBWHEREtableB.id=3)-第二个选择将始终获得单个结果或null。 最佳答案 尝试像下面的例子一样创建一个子查询:CriteriaQuerycq=cb.createQuery(Object[].class);RoottableA=cq.from(TableA.class);Subquerysq=cq.subque

java - hibernate 。如何为字段组合添加唯一索引?

我有以下hibernate映射:@EntitypublicclassUserPattern{@Id@GeneratedValueIntegerid;@ManyToOne@JoinColumn(name="user_id")Useruser;@ManyToOne@JoinColumn(name="patern_id")Patternpattern;...}hibernate是否允许添加唯一索引,user和pattern的组合是唯一的? 最佳答案 我认为它会起作用:@Table(name="UserPattern",uniqueCons