Tag: jpa

如何引入JPA批注的多列约束?

我试图在JPA映射的实体上引入一个多键约束: public class InventoryItem { @Id private Long id; @Version private Long version; @ManyToOne @JoinColumn("productId") private Product product; @Column(nullable=false); private long serial; } 基本上(产品,序列)对应该是唯一的,但我只能find一个方法来说,串行应该是唯一的。 这显然不是一个好主意,因为不同的产品可能有相同的序列号。 有没有办法通过JPA生成这个约束,或者我被迫手动创build到DB?

如何强制Hibernate返回date为java.util.Date而不是Timestamp?

情况 : 我有一个持久化的类与java.util.Datetypes的variables: import java.util.Date; @Entity @Table(name = "prd_period") @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) public class Period extends ManagedEntity implements Interval { @Column(name = "startdate_", nullable = false) private Date startDate; } DB中的对应表: CREATE TABLE 'prd_period' ( 'id_' bigint(20) NOT NULL AUTO_INCREMENT, … 'startdate_' datetime NOT NULL ) 然后我将我的Period对象保存到DB: Period p = new Period(); Date d = […]

限制JPQL结果的数量

如何限制从数据库中检索结果的数量? select e from Entity e /* I need only 10 results for instance */

是否可以通过扩展POJO来构buildJPA实体?

可以说我有以下POJO: public class MyThing { private int myNumber; private String myData; //assume getter/setter methods } 现在是否可以将此POJO扩展为JPA实体? @Entity @Table(name = "my_thing") public class MyThingEntity extends MyThing implements Serializable { @Column(name = "my_number") //????????? @Column(name = "my_data") //???????? } 我想把POJO与JPA实体分开。 POJO生活在一个不同的项目中,经常使用没有持久层,我的项目希望将其保存在数据库中,而不需要POJO到实体之间映射的开销。 我知道JPA实体是POJO,但为了使用它,我必须包含一个实现了javax.persistence的库,而使用同一个基础对象的其他项目对于持久层没有用处。 这可能吗? 这是一个好主意吗?

Hibernate ORM 5有哪些新特性?

我刚刚看到第四名候选人获得了Hibernate 5的发布。与早期版本相比,5中有哪些新function?

如何在persistence.xml中指定JPA 2.1?

在网上快速search可以发现3个或4个变种,人们如何在persistence.xml指定xmlns和xsi:schemaLocation 。 指定JPA版本2.1的“正确”方式是什么? 我在用着: <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">

弹簧数据JPA – “找不到types的属性”exception

好吧,我search了Google,发现了很多结果,但是没有一个能够回答我的问题。 所以,在这里呢。 我正在试图通过做一个pinterest克隆的最小实现来研究Spring MVC和Spring Data JPA。 所以,下面是我认为与我的问题有关的部分代码。 型号/实体 @Entity @Table(name = "pin_item") public class PinItem implements Serializable { // properties … @JoinColumn(name = "board_id", referencedColumnName = "user_board_id") @ManyToOne(optional = false) private UserBoard board; // getters and setters… } @Entity @Table(name = "user_board") public class UserBoard implements Serializable { // properties … @OneToMany(cascade = CascadeType.ALL, mappedBy […]

“jta-datasource”和“资源本地”数据源之间的区别?

术语“jta-datasource”和“资源本地数据源”对我来说有点模糊。 我正在放下我所理解的(或者假设),我希望你能说出我对错的地方。 同一个数据库可以被称为一个jta数据源或作为一个资源本地数据源 如果提到的是jta-datasource,那么beans /其他类可以使用JTA。 因此,UserTransaction接口 如果数据源是本地资源,则不能使用CMT / BMT 如果提到资源本地数据源,交易不是JTA意识到的。 代码可以使用EntityTransaction接口,但不能使用UserTransaction接口 谢谢!

什么是持久性上下文?

我是Java世界和JPA的新手。 我正在研究JPA,遇到了很多像Entity,Persistence这样的新术语。 在阅读时,我无法理解持久性上下文的确切定义。 任何人都可以用简单的外行人来解释吗? 用什么方法处理@Entity使用的数据? 例如,我觉得这个定义太难理解了: 持久性上下文是一组实体,这样对于任何持久性标识都有一个唯一的实体实例。

如何在JPA中定义单向的OneToMany关系

我在JPA中有一个与实体映射有关的问题。 我有两个实体,第一个是Lookup,第二个是Text,表示实体的翻译。 现在我需要将查找绑定到文本,但我不希望文本引用查找。 为了使这变得更加复杂,Text在这个关系中不使用它的主键,而是在TXTHEAD_CODE列中定义的元TXTHEAD_CODE 。 Lookup.java @Entity @Table(name = "DATREG") public class Lookup implements PersistableEntity { @Id @Column(name = "DATREG_META_CODE") private String metaCode; @OneToMany @JoinTable(name="TXT", joinColumns=@JoinColumn(name="DATREG_META_CODE", referencedColumnName="TXTHEAD_CODE"), inverseJoinColumns=@JoinColumn(name="DATREG_META_CODE")) private List<Text> text; Text.java @Entity @Table(name = "TXT") public class Text { @Id @Column(name = "TXT_ID") private Long id; @Column(name = "TXTHEAD_CODE") private String code; 所以我已经尝试了这个(和其他几个变化),但没有结果。 我也不能在数据库中创build连接表,我不想绑定到我的文本类的查找。 […]