草庐IT

Hibernate

全部标签

java - 使用 Spring Data 时,我应该如何注册自定义 Hibernate 5 数据类型(BasicType)?

我使用SpringData并决定创建可在Hibernate实体中使用的新自定义数据类型。我检查了文档并选择了BasicType并根据这个officialuserguide实现了它.我希望能够在其类名下注册该类型,并能够在实体中使用新类型而不需要@Type注释。不幸的是,我无法获得对MetadataBuilder或Hibernate配置的引用以注册新类型。有没有办法在SpringData中获取它?似乎Hibernate的初始化对用户是隐藏的,不能轻易访问。我们使用以下类来初始化JPA:@Configuration@EnableTransactionManagement@EnableJpa

java - 如何将数据库生成的列值定义为 JPA 和 Hibernate 中的只读字段?

使用MariaDB10.2可以为日期时间定义默认值,例如创建和最后修改。我应该如何将此列作为只读字段访问?因为这个值应该只在数据库的控制下,不应该从代码中修改,但我想在代码中读取这个属性。 最佳答案 很简单。只需将insertable和updatable属性设置为false。@Column(name="created_on",insertable=false,updatable=false)privateTimestampcreatedOn; 关于java-如何将数据库生成的列值定义为J

java - Spring 数据保存与 saveAll 性能

我试图理解为什么saveAll比在SpringData存储库中保存具有更好的性能。我正在使用可以看到的CrudRepositoryhere.为了测试,我创建了10k个实体并将其添加到一个列表中,这些实体只有一个ID和一个随机字符串(为了进行基准测试,我将字符串保持不变)。遍历我的列表并在每个元素上调用.save,耗时40秒。在2秒内完成对同一整个列表调用.saveAll。即使使用30k个元素调用.saveAll也需要4秒。我确保在执行每个测试之前截断我的表。即使将.saveAll调用批处理到50个子列表也需要30k10秒。包含整个列表的简单.saveAll似乎是最快的。我试图浏览Spr

java - 带 hibernate 的 MySQL 枚举

我有一个使用枚举的数据库表。这已经在使用hibernate(使用XML),并且我正在尝试将其转换为注释,因为这是仍然使用xml表示法的最后一部分。列定义:enum('Active','Pending','Cancelled','Suspend')以下作品:这不起作用:@Column(name="status")publicStringstatus;注释样式导致启动时出现如下异常:org.hibernate.HibernateException:UserDTO中列状态的列类型错误。发现:枚举,预期:varchar(255)我有什么办法可以像使用XML符号那样强制它接受字符串吗?

java - 在 AS7 中转换查找的 EJB View 时出现 ClassCastException

我正在将2个EAR部署到JBossAS7.1.0.Alpha1-SNAPSHOT(7.0.1.Final后版本)。两者都部署良好。我有一个EJBSingleton类打包在一个JAR中,在其中一个EAR中:@Startup@Singleton//oneof@Local(Store.class),@Remote(Store.class),@LocalBean@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)@Transactional(TransactionPropagation.SUPPORTS)publicclas

java - 我可以覆盖 jsr-303 验证注释吗

我有如下测试:publicclassTestSizeAnnotation{publicstaticvoidmain(String[]args){System.out.println(Validation.buildDefaultValidatorFactory().getValidator().validate(newC()));}publicstaticclassP{privateListlst=newArrayList("AA");@Size(max=0,message="P")publicListgetLst(){returnlst;}publicvoidsetLst(Listl

java - 组织.hibernate.HibernateException : get is not valid without active transaction

我是Hibernate新手。自动创建hibernate.cfg.xml(Netbeans向导)自动创建HibernateUtil.java自动创建带注释的POJO类尝试从数据库中获取对象但出现错误:Exceptioninthread"pool-1-thread-1"org.hibernate.HibernateException:getisnotvalidwithoutactivetransactionatorg.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadL

java - eclipse Maven 错误 : Archive for required library in project cannot be read or is not a valid ZIP file

在使用springwebmvc的eclipsemaven项目中,我在标记选项卡中收到以下错误:Archiveforrequiredlibrary:'D:/mypath/.m2/repository/javax/transaction/jta/1.0.1B/jta-1.0.1B.jar'inproject'DocumentManager'cannotbereadorisnotavalidZIPfile我已经检查过,jar文件实际上存在于指定的url中。我什至复制了jar的备份以覆盖该位置的jar文件,但这也没有消除错误。我强制更新maven,并没有解决问题。我也重新启动了eclipse没

java - hibernate 多对多-获取方法渴望与懒惰

Hibernate新手。我有用户组多对多关系。三张表:User、Group和UserGroup映射表。实体:@Entity@Table(name="user")publicclassUser{@Id@Column(name="username")privateStringuserName;@Column(name="password",nullable=false)privateStringpassword;@ManyToMany(cascade={CascadeType.ALL},fetch=FetchType.EAGER)@JoinTable(name="usergroup",jo

java - 传递的分离实体在 Spring-Data 中持久存在

我的数据库Brand和Product中有两个表,具有下一个简单结构:|品牌|身份证PK||产品|身份证PK|brand_idFK|和该表的实体:@Entity@Table(name="Brand")publicclassBrand{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privateLongid;@Column(name="brand")privateStringbrand;/*gettersandsetters*/}@Entity@Table(name="Product")publicclassProduct{@Id@