Tag: hibernate

注释过滤@OneToMany关联的结果

我有两个表之间的父/子关系,以及我的Java类中的相应映射。 表格大概是这样的: A (ref number, stuff varchar2(4000)) B (a_ref number, other number, foo varchar2(200)) 和Java代码: @Entity class A { @Id @Column(name = "REF") private int ref; @OneToMany @JoinColumn(name = "A_REF", referencedName = "REF") private Set<B> bs; } @Entity class B { @Id @Column(name = "A_REF") private int aRef; @Id @Column(name = "OTHER") private int other; […]

Hibernate表类是否需要Serializable?

我inheritance了使用Hibernate 3.0连接到SQL Server数据库的Websphere Portal项目。 这个项目中大约有130个Hibernate表类。 他们都实现了Serializable。 没有一个声明serialVersionUID字段,所以Eclipse IDE显示了所有这些类的警告。 有没有实际需要这些类来实现Serializable? 如果是这样,是否有任何工具来一次添加生成的serialVersionUID字段到大量的类(只是为了使警告消失)?

@PreUpdate和@Prepersist在hibernate/ JPA(使用会话)

我已经打了一个阻滞剂,添加一个修复现有的项目。主要的问题是,我想在POJO使用@Prepersist和@PreUpdate来照顾LastModified字段(插入和更新)使用JPA的hibernate实现会话。 原因? :这个改变是必须的,因为需要使用liquibase 1.9.5 ,我知道(因为我之前遇到过这种情况),liquibase将timestamp转换为datetime与默认的current_timestamp,这对于mysql数据库来说太糟糕了。 所以我需要一种方法来在代码中而不是在数据库中设置此集,以便我可以安全地将时间戳字段更改为datetime.then liquibase很高兴,我很高兴。 现在看来,这些解释器没有被执行,很less有search,我发现它适合使用entityManager 。目前没有问题。所以我想知道是否有一个简单的方法来解决我的问题,这意味着有@Prepersist或@PreUpdate甚至是其他解决方法来设置仍使用会话的lastModified字段

使用Jackson更改JSON中的字段名称

我正在使用jackson将我的对象转换为json。 该对象有2个字段: @Entity public class City { @id Long id; String name; public String getName() { return name; } public void setName(String name){ this.name = name; } public Long getId() { return id; } public void setName(Long id){ this.id = id; } } 因为我想要使用jQuery自动完成function,所以我希望'id'在json和'name'中显示为'value',显示为'label'。 jackson的文档不清楚,我已经尝试了每个注释,即使是远程似乎它做我所需要的,但我不能让name显示为label和id显示为value的JSON。 有谁知道如何做到这一点,如果这是可能的?

如何将inheritance策略与JPA注释和Hibernate混合?

根据Hibernate参考文档 ,在使用Hibernate的XML-Metadata时,应该可以混合使用不同的inheritance映射策略: http://docs.jboss.org/hibernate/stable/core/reference/en/html/inheritance.html#inheritance-mixing-tableperclass-tablepersubclass 但是,“ Hibernate注解参考指南”的相应部分并不包括: http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#d0e1168 另一方面,JavaDocsbuild议混合inheritance策略应该是可能的。 例如在javax.persistence.DiscriminatorColumn中它说: 策略和鉴别器列仅在应用不同inheritance策略的实体类层次结构或子层次结构的根目录中指定。 以下是我试图实现的映射的一个示例。 我想在层次结构的根目录附近使用table-per-subclass映射,但是在树叶附近改变为table-per-class-hierarchy映射。 以下是一些示例代码: @Entity @Inheritance( strategy = InheritanceType.JOINED ) public abstract class A implements Serializable { @Id private String id; // other mapped properties… } @Entity @Inheritance( strategy = InheritanceType.SINGLE_TABLE ) public class BB extends A { // other mapped properties and associations… } @Entity public […]

如何在JPAconfiguration中设置默认模式名称?

我发现在hibernateconfiguration文件中我们可以设置参数hibernate.default_schema : <hibernate-configuration> <session-factory> … <property name="hibernate.default_schema">myschema</property> … </session-factory> </hibernate-configuration> 现在我正在使用JPA,我也想这样做。 否则,我必须添加参数schema到每个@Table注释,如: @Entity @Table (name = "projectcategory", schema = "SCHEMANAME") public class Category implements Serializable { … } 据我所知这个参数应该在这部分configuration的某个地方: <bean id="domainEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceUnitName" value="JiraManager"/> <property name="dataSource" ref="domainDataSource"/> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="generateDdl" value="false"/> <property name="showSql" value="false"/> <property name="databasePlatform" value="${hibernate.dialect}"/> </bean> </property> </bean> <bean […]

CacheProvider的exceptionNoClassDefFoundError

我有点新的spring和冬眠,所以我试图实现一些简单的基于Spring 3 + hibernate 4的Web应用程序,而我启动tomcat我有这个例外: java.lang.NoClassDefFoundError: org/hibernate/cache/CacheProvider at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) at java.lang.Class.getDeclaredMethods(Class.java:1791) … Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.CacheProvider at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) 我发现这个类在hibernate 3的hibernate-core中,但是我没有在hibernate 4中find它。 我的context.xml的部分持久性: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="org.hsqldb.jdbcDriver"/> <property name="url" value="jdbc:oracle:thin:@IP_Address:SID"/> <property name="username" value="xxx"/> <property name="password" value="xxx"/> <property name="initialSize" value="5"/> <property name="maxActive" value="20"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" […]

Hibernate批量大小混乱

这个程序依次进行数以万计的连续插入。 我从来没有用过Hibernate。 我得到了非常慢的性能(如果我只是手动连接和执行SQL,速度要快10-12倍,而且我的batch_size被设置为50,就像许多hibernate教程一样。 这里是一个单一的插入日志 – 也许你可以帮助我明白到底发生了什么: START INSERT 11:02:56.121 [main] DEBUG org.hibernate.impl.SessionImpl – opened session at timestamp: 13106053761 11:02:56.121 [main] DEBUG ohtransaction.JDBCTransaction – begin 11:02:56.121 [main] DEBUG org.hibernate.jdbc.ConnectionManager – opening JDBC connection 11:02:56.121 [main] TRACE ohcDriverManagerConnectionProvider – total checked-out connections: 0 11:02:56.121 [main] TRACE ohcDriverManagerConnectionProvider – using pooled JDBC connection, pool size: 0 11:02:56.121 [main] […]

如何使用JPA和Hibernate解决LazyInitializationException

我正在为想要使用延迟初始化的客户开发一个项目。 当使用默认的延迟加载模式映射类时,他们总是会得到“懒惰的初始化exception”。 @JoinTable(name = "join_profilo_funzionalita", joinColumns = {@JoinColumn(name = "profilo_id", referencedColumnName = "profilo_id")}, inverseJoinColumns = {@JoinColumn(name = "funzionalita_id", referencedColumnName = "funzionalita_id")}) //@ManyToMany(fetch=FetchType.EAGER) – no exceptions if uncommented @ManyToMany private Collection<Funzionalita> funzionalitaIdCollection; 有没有使用JPA类的标准模式来避免这个错误? 片段欢迎,非常感谢您的时间。

何时,为什么JPA实体应该实现Serializable接口?

问题在于标题。 下面我刚刚介绍了一些我的想法和发现。 当我有非常简单的域模型(3表没有任何关系),我所有的实体没有实现Serializable。 但是,当域模型变得更复杂时,我得到了RuntimeException,它说我的一个实体没有实现Serializable。 我使用Hibernate作为JPA实现。 我在想: 它是供应商特定的要求/行为吗? 我的序列化实体会发生什么? 它们应该是可序列化的用于存储还是转移? 在哪一刻,有必要让我的实体可序列化?