Tag: orm

当UserType表示单行中的对象集时。 如何使用类似标准查询Hibernate自定义UserType?

我们使用自定义Hibernate UserType将一组字符串存储在一行中。 当尝试使用类似标准查询此集合时,使用JPA CriteriaBuilder Hibernate会抛出IllegalArgumentException Parameter value String did not match expected type java.util.Set 这有解决方法吗? 这是我们正在使用的UserType: public class SetStringType implements UserType, LiteralType<Set> { final private static String SEPARATOR = “|”; final private static String SEPARATOR_REGEXP = “\\|”; @Override public int[] sqlTypes() { return new int[] { Types.VARCHAR }; } @Override public Object nullSafeGet(ResultSet rs, String[] […]

多对多无效对象名称

我在代码中的Employee-Project之间创建了多对多关系,但是当我想使用它时抛出此exception: com.microsoft.sqlserver.jdbc.SQLServerException:无效的对象名称’employee_project’。 我试过了,但是我没有成功找到这个exception的根本原因。 所以,请帮帮我。 以下是Employee和Project的POJO以及抛出此exception的代码 员工pojo: @Entity @Table(name = “Employee”) public class Employee { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = “EMPLOYEE_ID_PK”) private int employeeIdPk; @ManyToMany(fetch = FetchType.LAZY, cascade = { CascadeType.PERSIST, CascadeType.MERGE }, mappedBy = “workers”) private Collection projects = new HashSet(0); } 项目pojo: @Entity @Table(name = “Project”) public class Project { @Id @GeneratedValue(strategy = […]

如何在ormlite中保存带有“外来对象”的对象

这是我的数据库: CREATE TABLE other ( id integer primary key autoincrement not null, texto text ); CREATE TABLE tabela (campoid INTEGER primary key autoincrement not null, camponome text not null, chave int, foreign key (chave) references other(id)); 这是我的课程: @DatabaseTable(tableName = “tabela”) public class Bean { @DatabaseField(columnName = “campoid”, generatedId = true) private int _id; @DatabaseField(columnName = […]

如何使用JPA(Hibernate)创建与同一实体的关系?

我有一个实体User ,它应该有物业manager ,其中经理是另一个用户(一个经理可以管理很多用户,任何用户可能只有一个经理或没有任何经理)。 我该如何实现呢? 我试过标准的东西 @ManyToOne @JoinColumn (name = ??? /* what should be here? */, nullable = true) private User manager; 但它并不像看起来那么简单……

哪个SessionFactory应该用于transactionManager?

PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_REQUIRED PROPAGATION_SUPPORTS,readOnly 我有2个数据源HRappsdao和projectdao,两个都使用不同的sessionFactory。 在这种情况下,我的transactionmanager应该使用哪个sessionfactory? (hrappsdao或projectdao)? editted //my HRappsdao using same

如何将hibernate时间戳映射到MySQL BIGINT?

我正在使用Hibernate 3.x,MySQL 4.1.20和Java 1.6。 我正在将Hibernate Timestamp映射到MySQL TIMESTAMP。 到现在为止还挺好。 问题是MySQL以秒为单位存储TIMESTAMP并丢弃毫秒,现在我需要毫秒精度。 我想我可以在我的表中使用BIGINT而不是TIMESTAMP并转换我的Java代码中的类型。 我试图弄清楚是否有更好的方法使用hibernate,mysql,JDBC或某种组合这样做,所以我仍然可以在我的HSQL和/或SQL查询中使用日期函数?

为什么每次运行我的应用程序时Hibernate都会插入重复的记录?

最后使用Hibernate 4.2.3。 我有以下实体: @Entity @AttributeOverrides({ @AttributeOverride(name=”id”, column=@Column(name=”word_id”)) }) @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Table(name=”words”) public class Word { @Id @GeneratedValue(strategy=GenerationType.AUTO) protected Long id; @Column(name=”word_text”) private String text; @Column(name=”word_length”) private Integer length; @ManyToOne(cascade = CascadeType.ALL) @JoinColumn(name=”word_type_id”, referencedColumnName=”word_type_id”) private WordType type; @Column(name=”word_definition”) private String definition; @ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = “synonyms”, joinColumns = @JoinColumn(name = “word_id”), inverseJoinColumns = @JoinColumn(name […]

如何通过hibernate访问pl / sql proc中的out参数

我有一个带有以下签名的pl / sql过程 PROCEDURE pr_log_process_started ( p_process_id IN log_process_status.process_id%TYPE, p_run_id IN OUT log_process_status.run_id%TYPE); 如何通过Hibernate调用此proc并在调用后访问第二个参数的值?

Hibernate / JPA,保存新实体,同时仅在@OneToOne关联上设置id

我有两个实体, class A { @OneToOne B b; } class B { … lots of properties and associations … } 当我创建新的A()然后保存时,我只想设置b的id。 所以新的A()。setB(new B()。setId(123)) 。 然后保存并让数据库保留它。 我真的不需要或者想要首先从数据库中获取整个B,以填充A的实例。 我记得这曾经工作过,但是当我测试的时候却没有。 我也尝试过Cascade All 。

使用Spring HibernateDaoSupport进行延迟加载?

问候我正在使用Spring + Hibernate开发一个非Web应用程序。 我的问题是HibernateDaoSupport如何处理延迟加载,因为在调用DAO之后,Session被关闭了。 看看下面的伪代码: DAO就像: CommonDao extends HibernateDaoSupport{ Family getFamilyById(String id); SubFamily getSubFamily(String familyid,String subfamilyid); } 域模型如下: Family{ private List subfamiles; public List getSubFamiles(); } SubFamily{ private Family family; public Family getFamily(); } 在应用程序中,我从app-context获取DAO并希望执行以下操作。这可能与延迟加载有关,因为AFAIK在每个方法(getFamilyById(),getSubFamily())之后关闭会话。 CommonDAO dao=//get bean from application context; Family famA=dao.getFamilyById(familyid); // //Do some stuff List childrenA=fam.getSubFamiles(); SubFamily asubfamily=dao.getSubFamily(id,subfamilyid); // //Do some other […]