Tag: jpa

多对多JPA映射插入但不会影响子集合

我已经用hibernate再次打了一个块。我已经多次发布了用户和联系人管理的不同方面,我一直在构建。 可悲的是,在真正开始使用它之前,我没有真正有时间玩它并更好地理解它。 对不起,英语不是我的母语,我更喜欢讲法语。 我再次开始以自学成分的方式在java中编码。我通过阅读书籍来完成所有这些工作并且没有去上学。 由于时间限制,从头到尾都很难读一本书。 我不确定我是否应该把我的每个代码都放在这里处理问题,而且从我从其他论坛学到的东西就是发布必要的和简洁的。 所以在我的用户模型中我有UserAccount类,Profile包含名称,首选项等详细信息,AccountSession和Phone。 我的联系人管理模式有联系人和小组。 UserAccount与Profile一对一关联,与AccountSession一对多,联系人和组,所有双向。与电话的一对多关联是单向的,因为联系人也具有单向和电话。 联系人有一个双向多对多组合和一对多用手机,我之前说过。 集团还有多对多的接触方式。 这是映射 // UserAccount …… @OneToOne(targetEntity=UserProfileImpl.class,cascade={CascadeType.ALL}) @org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN) @JoinColumn(name=”USER_PROFILE_ID”) private UserProfile profile; @OneToMany(targetEntity=ContactImpl.class, cascade={CascadeType.ALL}, mappedBy=”userAccount”) @org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN) private Set contacts = new HashSet(); @OneToMany(targetEntity=GroupImpl.class, cascade={CascadeType.ALL}, mappedBy=”userAccount”) @org.hibernate.annotations.Cascade(value=org.hibernate.annotations.CascadeType.DELETE_ORPHAN) private Set groups = new HashSet(); ……. //Group @ManyToOne(targetEntity=UserAccountImpl.class) @JoinColumn(name=”USER_ACCOUNT_ID”,nullable=false) private UserAccount userAccount; @ManyToMany(targetEntity=ContactImpl.class,cascade={CascadeType.PERSIST, CascadeType.MERGE}) @JoinTable(name=”GROUP_CONTACT_MAP”, joinColumns={@JoinColumn(name=”GROUP_ID”)}, inverseJoinColumns={@JoinColumn(name=”CONTACT_ID”)}) private Set […]

JBoss Seam:如何在视图中打开jpa / hibernate会话

Spring也有类似的问题。 但是JBoss Seam呢,我需要一个关于我正在开发的应用程序的建议。 如果您需要任何特定的版本信息,它们是 接缝2.2 JSF 1.2 JPA 1和Hibernate作为持久性提供程序

JPA RollbackException持久化事务导致后续有效事务失败?

我有一个@Transactional服务在oracle DB中执行持久化操作。 如果我运行一个持久化程序打破一个唯一的违规,我得到预期的rollbackException:ConstraintException。 问题是任何后续请求(即使不破坏唯一约束)持久化都会引发相同的exception。 似乎JPA没有清除对象以保持其事务管理器? 我甚至关闭? 我需要一点解释。 回购: @Repository public class UserRepository { @PersistenceContext(type=PersistenceContextType.EXTENDED) private EntityManager em; public User findUserById(long id){ CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery query = builder.createQuery(User.class); Root root = query.from(User.class); Predicate whereClause = builder.equal(root.get(User_.userId), id); return em.createQuery(query.where(whereClause)).getSingleResult(); } public User findUserByCredentials(String credentials){ CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery query = builder.createQuery(User.class); Root root […]

在Play Framework中使用SchemaExport

在Play Framework 1.2.5上使用Jpa + Hibernate作为ORM,我想以编程方式调用Hibernate工具SchemaExport。 我试过这段代码: Ejb3Configuration cfg = getPlayEjb3Configuration(); Configuration configuration = cfg.getHibernateConfiguration(); try { SchemaExport se = new SchemaExport(configuration); se.setHaltOnError(true); se.setDelimiter(“;”).setFormat(true); se.execute(true, false, false, false); } catch(Exception e) { … } 其中getPlayEjb3Configuration()是play框架JPAPlugin.onApplicationStart()的“副本”。 我总是获得’no datasource provided’exception消息。 我尝试在静态引用(修改播放框架)中保留配置而没有区别。 如何从play框架中获取正确的Ejb3Configuration / HibernateConfiguration? 还有其他方法可以调用SchemaExport吗?

无法执行存储过程JPA

尝试使用JPA在Oracle中执行存储过程时,我遇到以下exception: 引起:org.switchyard.HandlerException: java.lang.NoSuchMethodError: javax.persistence.EntityManager.createStoredProcedureQuery(Ljava /郎/字符串;) Ljavax /持久/ StoredProcedureQuery; 有一个代码片段: query = enmanager.createStoredProcedureQuery(“BEGIN YLABPACK.ejemplo(?,?);END;”) .registerStoredProcedureParameter(1, String.class, ParameterMode.IN) .registerStoredProcedureParameter(2, String.class, ParameterMode.IN) .setParameter(1, datosIdController.getSerie()) .setParameter(2, respuesta).execute();

如何将查询映射到非实体类+实体类

我知道如何在IBatis中查询resultClass映射。 如何将本机查询结果映射到hibernate中混合使用实体类和标量的对象? 我该如何设置参数? 请帮忙。

如何使用JPA(Hibernate)创建与同一实体的关系?

我有一个实体User ,它应该有物业manager ,其中经理是另一个用户(一个经理可以管理很多用户,任何用户可能只有一个经理或没有任何经理)。 我该如何实现呢? 我试过标准的东西 @ManyToOne @JoinColumn (name = ??? /* what should be here? */, nullable = true) private User manager; 但它并不像看起来那么简单……

如何将一组对象发送到需要所有对象的“id”的NamedQuery。

我正在根据从jsp页面中的多选表单元素收到的信息构建报告。 在我的存储库类中,我从该元素获取了一个对象数组。 我需要为这些对象中的每一个调用getId函数,并将这些id发送到NamedQuery 。 这是一个帮助解释的代码示例。 我知道如何处理单个对象,但是在.setParameter(1, employees[].getId())部分中丢失了.setParameter(1, employees[].getId())对象。 public List getFormInformation( Employee[] employees) throws NoDataFoundException { List resultList = getEm().createNamedQuery( “requestByRequestor.getRequestsByRequesters”, RequestByRequester.class) .setParameter(1, employees[].getId()) .getResultList(); return resultList; } 通过请求查询: SELECT EMP.EMPL_FIRST_NAME || ‘ ‘ || EMP.EMPL_LAST_NAME REQUESTER, R.RQST_ID RQST_ID, R.TITLE TITLE, R.DESCRIPTION DESCR, DECODE(R.RESOLUTION_DATE, NULL, ‘Open’, ‘Closed’) STAT FROM TARTS.REQUESTS R, SYS_EMPLOYEES EMP WHERE R.EMPL_ID_REQUESTED_BY […]

这是正确的(更好的)对象关系映射吗?

我真的很难在我的项目中使用Hibernate。 我在这里描述的一些问题: Hibernate:得到太多行我开始想知道我的代码是否正确。 我正在开发一个庞大的项目,我不得不自己定义带注释的映射类。 但是当问题开始出现时,我决定重新创建与项目分开的数据库部分,并尝试在IDE中生成实体。 我有两个表: My和Option 。 My有主键:列qwerty和property 。 Property是Option表中的外键。 当然, Option将property作为主键。 在我的解决方案中,我创建了具有两个属性的@Embeddable MyPK类: String qwerty和String property 。 在我的My实体中,我当然有@EmbeddedId MyPK和property (与MyPK中的列名相同),但这是Option对象,而不是MyPK中的MyPK 。 @ManyToOne @JoinColumn(name = “property”, nullable = false, insertable = false, updatable = false) protected Option option; 这是由Intellij Idea中的Hibernate Tools生成的实体。 没有EmbeddedId ,但有@IdClass 。 我认为@IdClass仅适用于基本类型。 但我有一个对象作为我的主键的一部分。 但是这里也有OptionEntity对象。 保持一列的基本类型和对象类型是否正确? @javax.persistence.IdClass(test.go.MyEntityPK.class) @javax.persistence.Table(name = “MY”, schema = […]

JPA spring boot内部join – with-clause引用了两个不同的from-clause元素错误

我正在尝试在我的一个JPA存储库中选择内部联接 查询: @Query(value = “select wm.WagerIdentification, wm.BoardNumber, wm.MarkSequenceNumber, wm.MarkNumber,” + ” pt.CouponTypeIdentification, pt.WagerBoardQuickPickMarksBoard ” + “from WagerBoard wb ” + “inner join wb.listOfWagerMarks wm on wb.WagerIdentification = wm.WagerIdentification and wb.BoardNumber = wm.BoardNumber and wb.GameIdentification = wm.GameIdentification and wm.meta_IsCurrent = 1 ” + “inner join wb.poolgameTransaction pt on (wb.TransactionIdentification = pt.TransactionIdentification and pt.meta_IsCurrent = 1)” + […]