草庐IT

accessing-data-jpa

全部标签

java - 带有实体键和实体值的 JPA 映射

关键实体:@EntitypublicclassKeyEntity{@Id@GeneratedValue(strategy=GenerationType.TABLE)publicLongid;publicStringhandle;publicbooleanequals(Objecto){KeyEntityoke=(KeyEntity)o;returnhandle!=null?handle.equals(oke.handle):oke.handle==null;}publicinthashCode(){returnhandle!=null?handle.hashCode():0;}}值(v

java - JPA EntityManager persist() 导致对象出现分离,即使抛出错误

您好,我有一个具有以下功能的简单DAO。publicelementcreateElement(Elemente){em.persist(e);em.flush();returne;}实体表对(type,value)对有唯一约束,我在下面进行测试:publicvoidtestCreateElement()throwsDataAccessException{//StartwithemptyElementtableElemente=newElement();e.setType(myType.OTHER);e.setValue("1");dao.createElement(e);e=newEl

java - Spring data - 域对象继承和泛型方法

我有一些域对象:@EntitypublicclassLog{}@EntitypublicclassLogLetterextendsLog{}@EntitypublicclassLogActionextendsLog{}我只想拥有一个存储库,它允许我获取Log的子项。理论上我可以做这样的事情吗?publicinterfaceLogRepositoryextendsCrudRepository{@Query("selectfrom?1)publicListgetLog(Classclazz);}并调用这个方法:ListlogLetters=getLog(LogLetters.class);

java - JPA 对所有者的多对多合并触发对连接表的删除

我在Customer和BusinessUnit之间有多对多关系:publicclassCustomerextendsAbstractEntity{@JoinTable(name="CUS_BUS_UNITS",joinColumns={@JoinColumn(name="CUS_ID",referencedColumnName="CUS_ID")},inverseJoinColumns={@JoinColumn(name="BUS_ID",referencedColumnName="BUS_ID")})@ManyToManyprivateCollectionbusinessUnits;

java - Spring WEB 安全 : list of accessible URLs

我正在将WEB应用程序迁移到SpringSecurity。应用程序使用SpringMVC呈现JSP,Controller方法使用@Secured(...)注释。因此,在成功登录和MVCservlet初始化之后的某个时候,一些Spring内部具有以下信息:用户拥有哪些权限(也称为授予的权限)、ControllerURL和权限集,每一个都需要这些信息。我想要的是动态获取当前用户可访问的URL列表以生成导航栏。当然,我可以为此覆盖一些Springbean,但这种方法似乎太脏了。那么,关于如何做到这一点的任何建议,也许是标准解决方案? 最佳答案

java - 是否可以在 Spring Data JPA 中将 @Lock 与 @Modifying @Query 与 Hibernate 结合使用?

在将@Lock注释与@Modifying@Query一起使用以及查询本身执行更新语句时,我遇到了问题。我的测试设置如下所示:SpringBootStarter1.5.3.RELEASEhibernate5.2.10.FinalSpringDataJPA1.11.3.RELEASE测试的数据库:H2、PostgreSQL、MariaDB、Oracle示例实体:importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.Id;importjavax.persistence.Tab

java - 使用 TopLink 在 JPA 查询中作为命名参数列出

在下面的JPA查询中,:fcIds命名参数需要是一个整数值列表:@NamedQuery(name="SortTypeNWD.findByFcIds",query="SELECTsFROMSortTypeNWDsWHEREs.sortTypeNWDPK.fcIdIN(:fcIds)")从逻辑上讲,这就是调用命名查询时所做的事情:QueryfindByDatesPlFcIds=em.createNamedQuery("SortTypeNWD.findByFcIds");findByDatesPlFcIds.setParameter("fcIds",fcIds);其中变量fcIds是一个包含

java - 验证 Jpa 实体 : In service or by lifecycle listeners

问题是将Jpa实体的业务验证逻辑放在哪里更好(或者换句话说:您更喜欢在哪里)。两个想法是:在EntityListener中,在保存或更新之前将验证实体在提供对jpa持久化方法的访问的服务中。两者各有利弊。当使用方法2时,它更容易测试,因为您可以模拟jpa提供程序并测试验证逻辑。另一方面,对于方法1,验证将与@NotNull等验证同时发生。我很想知道你们如何解决项目中的验证问题,哪种方法更好。谢谢。 最佳答案 这是我遵循的一般经验法则:Whenusingbeanvalidation,specifyrulesthatdonotrequi

java - hibernate/JPA : Mapping entities to different databases

我有一个管理3个数据库的应用程序。我在seam框架上使用带JPA的hibernate。所以我有一个包含三个持久单元的persitence.xml文件(我删除了db2和db3的属性):org.hibernate.ejb.HibernatePersistencedb1sourceorg.hibernate.ejb.HibernatePersistenced2sourceorg.hibernate.ejb.HibernatePersistenced3source在我的seamcomponents.xml文件中,我创建了3个managed-persistence-context以将seam映射

java - JPA : Ideas to track the evolution/changes of the entities

我想知道是否有任何简单的方法来实现对实体中更改的跟踪?Hibernate的Envers进行了审计,但据我所知,它是面向Hibernate的。我在想JPA中是否有什么东西,或者没有超出规范的解决方案。如果没有任何东西,有人可以给我一个想法如何开始这种事情。我想到的一个想法是创建一个实体,例如:classChange{StringclassName;longid;StringfieldName;StringfieldValue;DatedateOfChange;}其中将包含更改的属性。该解决方案在存储位置方面似乎非常有效,但处理被跟踪实体之间的关系可能会更加困难(尚未弄清楚)。我非常感谢对