Tag: hibernate

Spring Security 3使用Hibernate进行数据库validation

我需要从数据库authentication用户,Spring Security文档不告诉如何用hibernate进行authentication。 这是可能的,我该怎么做?

何时在NHibernate / Hibernate OneToMany关系上使用inverse = false?

我一直在努力去理解Hibernate的inverse属性,而这似乎只是那些概念上困难的事情之一。 我得到的要点是当你有一个使用一对多映射的具有Child对象集合的父实体(例如Parent)时,在映射上设置inverse = true会告诉Hibernate“对方)有责任自行更新以维护其表中的外键引用。 这样做似乎有两个好处,当涉及到代码中的集合添加孩子,然后保存父级(级联所有设置): 你保存一个不必要的命中数据库 (因为没有反设置,Hibernate认为它有两个地方更新FK关系),并根据官方文件: 如果关联的列被声明为NOT NULL,那么NHibernate在创build或更新关联时可能会导致约束违规。 为了防止这个问题,你必须使用与被标记为inverse =“true”的许多有价值的结尾(集合或行李)的双向关联。 这一切似乎到目前为止是有道理的。 我不明白的是:什么时候你不想在一对多的关系上使用inverse = true?

什么是hibernate中的分离,持久和临时对象?

什么是hibernate中的分离,持久和临时对象? 请用一个例子来解释。

不能使用<union-subclass>(TABLE_PER_CLASS)标识列密钥生成

com.something.SuperClass: @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class SuperClass implements Serializable { private static final long serialVersionUID = -695503064509648117L; long confirmationCode; @Id @GeneratedValue(strategy = GenerationType.AUTO) // Causes exception!!! public long getConfirmationCode() { return confirmationCode; } public void setConfirmationCode(long confirmationCode) { this.confirmationCode = confirmationCode; } } com.something.SubClass: @Entity public abstract class Subclass extends SuperClass { private […]

在Hibernate Validator 4.1+中,@NotNull,@NotEmpty和@NotBlank有什么区别?

我似乎无法find一个区分这三个注释区别的总结。

一对多,多对一和多对多的区别?

好,所以这可能是一个微不足道的问题,但我很难形象化和理解差异以及何时使用每个差异。 对于单向和双向映射等概念如何影响一对多/多对多的关系,我也有点不清楚。 我现在正在使用Hibernate,所以任何与ORM相关的解释都会有所帮助。 举一个例子,假设我有以下设置: public class Person{ private Long personId; private Set<Skill> skills; //Getters and setters } public class Skill{ private Long skillId; private String skillName; //Getters and setters } 那么在这种情况下我会有什么样的映射? 这个具体例子的答案是肯定的赞赏,但我也真的很喜欢什么时候使用一对多和多对多的概述,何时使用连接表与连接列和单向与双向。

session.flush()在Hibernate中有什么用处

当我们更新logging时,我们可以在Hibernate中使用session.flush() 。 什么是flush()的需要?

Hibernate延迟加载应用程序devise

我倾向于将Hibernate与Spring框架结合使用,它是声明式事务分界function(例如@Transactional )。 众所周知,hibernate试图尽可能保持非侵入性和透明性 ,但是在使用lazy-loaded关系时,这样做会更具挑战性 。 我看到许多不同透明度的devisescheme。 使关系不会延迟加载(例如, fetchType=FetchType.EAGER) 这违背了懒加载的整个想法。 使用Hibernate.initialize(proxyObj);初始化集合Hibernate.initialize(proxyObj); 这意味着相对较高的DAO耦合 虽然我们可以用initialize来定义一个接口,但其他的实现不能保证提供任何等价的东西。 将事务行为添加到持久Model对象本身(使用dynamic代理或@Transactional ) 我还没有尝试dynamic代理的方法,虽然我似乎从来没有得到@Transactional工作在持久对象本身。 可能是因为hibernate是在一个代理服务器上运行的。 交易实际发生时失去控制权 提供惰性/非惰性API,例如loadData()和loadDataWithDeps() 强制应用程序知道何时使用哪个例程,再次紧密耦合 方法溢出, loadDataWithA() ,…, loadDataWithX() 强制查找依赖关系,例如,仅通过提供byId()操作 需要大量非面向对象的例程,例如findZzzById(zid) ,然后getYyyIds(zid)而不是z.getY() 如果事务之间存在大量的处理开销,那么逐个获取集合中的每个对象会非常有用。 使应用程序 @Transactional,而不是只有DAO的一部分 嵌套事务的可能考虑 需要适应事务pipe理的例程(例如,非常小的) 虽然可能会导致大规模的交易,但对程序的影响很小 为DAO提供dynamic获取configuration文件 ,例如loadData(id, fetchProfile); 应用程序必须知道使用哪个configuration文件时 AoPtypes的交易,例如拦截操作,并在必要时执行交易 需要字节码操作或代理使用 交易执行失去控制权 黑魔法一如既往:) 我错过任何select吗? 试图最大限度地减less应用程序devise中lazy-loaded关系的影响时,您最喜欢哪种方法? (哦,对于WoT抱歉)

如何在使用JPA和Hibernate时selectid生成策略

我正在通过Hibernate参考指南的Id生成部分和“与Hibernate的Java持久性” Hibernate和JPA结合使用的选项有很多。 我正在寻找关于如何select特定的id生成策略的进一步的文档。 我也在寻找引爆点。 例如,hilo策略有望减less争用。 我假设必须有一个与这个select相关的折衷。 我想受到关于权衡的教育。 有没有任何文献可用?

hibernate:“字段ID”没有默认值“

我面对的是我认为是Hibernate的一个简单问题,但无法解决它(Hibernate论坛无法访问肯定不会帮助)。 我有一个简单的类,我想坚持,但不断得到: SEVERE: Field 'id' doesn't have a default value Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not insert: [hibtest.model.Mensagem] at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) [ a bunch more ] Caused by: java.sql.SQLException: Field 'id' doesn't have a default value [ a bunch more ] 持久化类的相关代码是: package hibtest.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Inheritance; import […]