Tag: jpa

Hibernate Sequence Id Specification

我有这个注释来指定序列ID: @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “parametro_seq_gen”) @SequenceGenerator(name = “parametro_seq_gen”, sequenceName = “PARAMETROS_SQ”, allocationSize = 1, initialValue = 1) 我发现在我的所有实体上重复都非常冗长。 有没有办法创建自定义注释或什么? 我只想指定序列名称 。

使用dao接口和实现实现Generic Abstract Entity类

嘿我想有通用模型/实体类,可以从db下载类型为long元素的id。 方法是这样的: public class GenericModel { @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long id; public static GenericModel getBy(Long id) { return JPA.em().find(GenericModel.class, id); } } 但是在子模型类中扩展的Generic模型中,我必须动态声明要在db中查找的实体类名。 我想有通用实体类,我将有常见的方法,如getById()。 该generics类将由concret实体类扩展。 我不必在每个模型类中编写相同的方法,因为它将inheritance自generics类 – 我怎么能得到这个? 这是我的DAO界面。 我不太确定: public interface GenericModelDao { public void add(T entityClass); public void update(T entityClass); public void delete(long id); public T get(long id); public List get(); […]

从属性文件加载JPA存储库查询

我需要从属性文件中加载存储库中的查询。 例如,这里: @Repository public interface StudentRepository extends JpaRepository { @Query(value=”SELECT * FROM student where year= :le”, native=true) public List getStudentsByLevel(@Param(“le”) int level); } 我需要从属性文件中加载”SELECT * FROM student where year= :le”字符串。 有什么办法吗?

JPA ManyToMany在哪里注释

我正在使用JPA / EclipseLink 2.5.2,并希望在ManyToMany Mapping中添加一个额外的where子句。 SQL代码如下所示: SELECT * FROM Friends f INNER JOIN User u ON f.friend_id = u.id WHERE f.verified=1; 所以我设法做了JoinMapping: @Entity @NamedQueries({ @NamedQuery(name=”User.findAll”, query=”SELECT u FROM User u”), @NamedQuery(name=”User.login”, query=”SELECT a FROM User a WHERE a.username = :name and a.password = :password”), @NamedQuery(name=”User.findId”, query=”SELECT a FROM User a WHERE a.id = :id”), @NamedQuery(name=”User.findName”, […]

如何使用EclipseLink调用函数

如何调用使用EclipseLink返回sys_refcursor的Oracle函数? 有一个文档说明了调用一个函数,但不知道如何调用一个返回sys_refcursor的函数。 http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_namedstoredfunctionquery.htm 我试过如下 @NamedStoredFunctionQuery(name = “findEmployees”, functionName = “getEmps”, parameters = { @StoredProcedureParameter(queryParameter = “user”, name = “username”, direction = Direction.IN, type = String.class) } , returnParameter = @StoredProcedureParameter(queryParameter = “c_cursor”) ) Oraclefunction CREATE or REPLACE FUNCTION getEmps (username varchar2) RETURN SYS_REFCURSOR AS c_cursor SYS_REFCURSOR; BEGIN OPEN c_cursor FOR SELECT * FROM employees where […]

Hibernate / JPA,保存新实体,同时仅在@OneToOne关联上设置id

我有两个实体, class A { @OneToOne B b; } class B { … lots of properties and associations … } 当我创建新的A()然后保存时,我只想设置b的id。 所以新的A()。setB(new B()。setId(123)) 。 然后保存并让数据库保留它。 我真的不需要或者想要首先从数据库中获取整个B,以填充A的实例。 我记得这曾经工作过,但是当我测试的时候却没有。 我也尝试过Cascade All 。

如何在JPA中混合inheritance类型

如何在同一inheritance树中混合单表类型inheritance和连接表类型? 我没有使用hibernate只是JPA。 我知道通过阅读JPA规范,没有官方支持混合inheritance。 我无法改变架构。 它确实与hibernate一起工作但现在我需要使用openjpa来实现它。 我正在寻找一些解决方法。

使用TIMESTAMPDIFF的JPA Hibernate公式中的SQL Literal

对于使用@Formula定义伪列的JPA实体: @Formula(“TIMESTAMPDIFF(SECOND, dateColA, dateColB)”) private Long duration; 这里预计SECOND将被视为常量字面值(使用MySQL),但是,在生成的JPQL中,它被视为列名,就像dateColA和dateColB一样,如: where … TIMESTAMPDIFF(entity_.SECOND, entity_.dateColA, entity_.dateColB) … 我想知道如何为SECOND文字正确生成JPQL? 谢谢

将@ManyToMany关联表与额外列映射

我的数据库包含3个表: person , document和peson_document 。 Person和Document具有多对多关系,并与包含添加列的person_document表连接。 这是我的映射: class Person { @Cascade(CascadeType.ALL) @OneToMany(mappedBy = “compositePK.person”, orphanRemoval = true) Set personDocuments; } class Document { @OneToMany(mappedBy = “compositePK.document”) Set personDocuments; } class PersonDocument { @EmbeddedId private CompositePK compositePK; @Column(name = “person_origin_id”) private String personID; @ManyToOne(fetch = FetchType.LAZY) private Provider provider; @Embeddable public static class CompositePK implements Serializable […]

将generics类@MappedSuperclass应用为targetEntity.Error:模型上的@ManyToOne.Unit.parent引用未知实体:models.GenericHierarchic

我有扩展其他generics类的generics类。 所有这些都是@MappedSuperclass 。 所以他们在数据库中没有自己的表。 它们也是抽象的,所以它们没有任何物体。 它们只是我的实体@Entity骨架 我的inheritance结构: Generic -> GenericDictionary -> GenericHierarchicalDictionary -> Unit Unit是@Entity类并且有对象。 @Entity public class Unit extends GenericHierarchicalDictionary {} 单元实体具有层次结构 ,这意味着实体与自身有关系,但我正在使用抽象类( @MappedSuperclass ),所以我想在该抽象类中动态定义它: 我的GenericHierarchicalDictionary: @MappedSuperclass public abstract class GenericHierarchicalDictionary<T extends Generic> extends GenericDictionary { @Required @ManyToOne(targetEntity = GenericHierarchicalDictionary.class, fetch=FetchType.LAZY, cascade = {CascadeType.ALL}) @JoinColumn(name=”parent_id”) public GenericHierarchicalDictionary parent; 但id dosnt工作。 我收到一个错误: play.api.UnexpectedException: Unexpected exception[PersistenceException: […]