小编Man*_*nns的帖子

在JPA中设置列的默认值

是否可以为JPA中的列设置默认值,以及是否使用注释完成了哪些操作?

java annotations jpa

234
推荐指数
12
解决办法
37万
查看次数

@ManyToOne属性不允许@Column

我有一个JPA实体,其属性设置为

@ManyToOne
@Column(name="LicenseeFK")
private Licensee licensee;
Run Code Online (Sandbox Code Playgroud)

但是当我在JBoss 6上部署时,应用程序会抛出一个错误:

org.hibernate.AnnotationException: @Column(s) not allowed on a @ManyToOne property
Run Code Online (Sandbox Code Playgroud)

我使用Hibernate 3.5作为JPA 2.0实现.

我应该用什么来引用外键列?

java jboss annotations hibernate jpa

131
推荐指数
3
解决办法
6万
查看次数

JPA"@JoinTable"注释

在哪种情况下,您使用JPA @JoinTable注释?

java hibernate jpa

130
推荐指数
5
解决办法
16万
查看次数

将IN子句列表添加到JPA查询中

我已经构建了一个看起来像这样的NamedQuery:

@NamedQuery(name = "EventLog.viewDatesInclude",
        query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
        + "el.timeMark <= :dateTo AND "
        + "el.name IN (:inclList)")
Run Code Online (Sandbox Code Playgroud)

我想要做的是填写参数:inclList与项目列表而不是一个项目.例如,如果我有一个new List<String>() { "a", "b", "c" }如何在:inclList参数中得到它?它只允许我编纂一个字符串.例如:

setParameter("inclList", "a") // works

setParameter("inclList", "a, b") // does not work

setParameter("inclList", "'a', 'b'") // does not work

setParameter("inclList", list) // throws an exception
Run Code Online (Sandbox Code Playgroud)

我知道我可以构建一个字符串并从中构建整个Query,但我想避免开销.有没有更好的方法呢?

相关问题:如果List非常大,有没有什么好的方法来构建这样的查询?

java jpa jpql

116
推荐指数
4
解决办法
23万
查看次数

@OneToMany和@ElementCollection之间的区别?

使用a @OneToMany@ElementCollection注释有什么区别,因为两者都在一对多关系上工作?

java hibernate jpa

111
推荐指数
4
解决办法
6万
查看次数

JPA - 在persist()之后返回自动生成的id

我正在使用JPA(EclipseLink)和Spring.假设我有一个带有自动生成ID的简单实体:

@Entity
public class ABC implements Serializable {
     @Id
     @GeneratedValue(strategy=GenerationType.IDENTITY)
     private int id;

     // ...
}
Run Code Online (Sandbox Code Playgroud)

在我的DAO类中,我有一个调用persist()此实体的insert方法.我希望该方法返回新实体的生成ID,但是当我测试它时,它返回0.

public class ABCDao {
    @PersistenceContext
    EntityManager em;

    @Transactional(readOnly=false)
    public int insertABC(ABC abc) {
         em.persist(abc);
         // I WANT TO RETURN THE AUTO-GENERATED ID OF abc
         // HOW CAN I DO IT?
         return abc.id; // ???
    }
}
Run Code Online (Sandbox Code Playgroud)

我还有一个包装DAO的服务类,如果这有所不同:

public class ABCService {
    @Resource(name="ABCDao")
    ABCDao abcDao;

    public int addNewABC(ABC abc) {
         return abcDao.insertABC(abc);
    }
}
Run Code Online (Sandbox Code Playgroud)

java jpa

101
推荐指数
3
解决办法
11万
查看次数

like子句JPQL中的参数

我正在尝试使用like子句编写JPQL查询:

LIKE '%:code%'
Run Code Online (Sandbox Code Playgroud)

我想有代码= 4并找到

455
554
646
...

我无法通过 :code = '%value%'

namedQuery.setParameter("%" + this.value + "%");
Run Code Online (Sandbox Code Playgroud)

因为在另一个地方我不需要:value%chars 包裹.有帮助吗?

java jpa eclipselink jpql sql-like

84
推荐指数
3
解决办法
11万
查看次数

使用JPA/EJB代码将"分离的实体传递给持久性错误"

我正在尝试运行这个基本的JPA/EJB代码:

public static void main(String[] args){
         UserBean user = new UserBean();
         user.setId(1);
         user.setUserName("name1");
         user.setPassword("passwd1");
         em.persist(user);
  }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.JPA.Database
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

我在互联网上搜索,我找到的原因是:

这是由您创建对象的方式引起的,即如果您明确设置了ID属性.删除ID分配修复了它.

但我没有得到它,我需要修改什么来使代码工作?

java jpa ejb-3.0

80
推荐指数
7
解决办法
13万
查看次数

JPA实体经理应该关闭吗?

我有以下方法.

public Profile readUser(String email){
    EntityManager em = EMF.get().createEntityManager();
    return em.find(Profile.class, email);
}
Run Code Online (Sandbox Code Playgroud)

以上是实体经理的用法吗?或者有必要关闭他们?请提出任何建议.

java jpa

73
推荐指数
1
解决办法
7万
查看次数

persistence.xml不同的事务类型属性

在persistence.xml JPA配置文件中,您可以使用如下行:

<persistence-unit name="com.nz_war_1.0-SNAPSHOTPU" transaction-type="JTA">
Run Code Online (Sandbox Code Playgroud)

或有时:

<persistence-unit name="com.nz_war_1.0-SNAPSHOTPU" transaction-type=”RESOURCE_LOCAL”>
Run Code Online (Sandbox Code Playgroud)

我的问题是:

transaction-type="JTA"和之间有什么区别transaction-type=”RESOURCE_LOCAL”

我还注意到一些缺少事务类型的persistence.xml文件.这是对的吗?

java jpa jta persistence.xml java-ee

68
推荐指数
1
解决办法
6万
查看次数