我不能让Hibernate使用java.util.UUID for PostgreSQL.
这是使用javax.persistence的映射.*annotations:
private UUID itemUuid;
@Column(name="item_uuid",columnDefinition="uuid NOT NULL")
public UUID getItemUuid() {
return itemUuid;
}
public void setItemUuid(UUID itemUuid) {
this.itemUuid = itemUuid;
}
Run Code Online (Sandbox Code Playgroud)
当持久化对象时,我得到一个SQLGrammarException:
column "item_uuid" is of type uuid but expression is of type bytea at character 149
Run Code Online (Sandbox Code Playgroud)
PostgreSQL版本是8.4.4
JDBC驱动程序--8.4.4-702(也试过9.0 - 同样的事情)
Hibernate版本是3.6,主要配置属性:
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://192.168.1.1/db_test</property>
Run Code Online (Sandbox Code Playgroud) 我的表格如下:
1- medical_company:
2- account_entity:
3 人:
4- employee_company:
实体:
1- 医疗公司:
@SuppressWarnings("serial")
@Entity
@Table(name = "medical_company")
public class MedicalCompany implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", unique = true, nullable = false)
@Basic(fetch = FetchType.EAGER)
private Long id;
@OneToOne
@Cascade(value = { CascadeType.ALL })
@JoinColumn(name …Run Code Online (Sandbox Code Playgroud) 当我在做Hibernate独立程序示例时,在我的脑海中使用@Entity注释创建了一点混乱.
这里我的问题是,我有一个来自javax.persistence包的@Entity的持久化类,然后它工作正常但是当我用Hibernate API替换@Entity注释(即来自org.hibernate.annotations包)然后它给出了org.hibernate.MappingException :未知实体:com.jetti.test.Employee
给予更多解释,非常感谢.
不确定这是否可行,但尝试WorkflowInstancePlayer player 根据两个其他实体映射WorkActionClass以及WorkflowInstance下面的实体映射哪些相关.
public class Action implements Serializable {
@Id
private Long action_id;
@ManyToOne
@JoinColumn(name = "work_action_class_id", referencedColumnName = "work_action_class_id")
private WorkActionClass workActionClass;
@ManyToOne
@JoinColumn(name = "workflow_instance_id", referencedColumnName = "workflow_instance_id")
private WorkflowInstance workflowInstance;
UPDATE: How can I map to a WorkflowInstancePlayer player?????
@ManyToOne
@JoinColumns( {
@JoinColumn(name = "workflow_instance_id", referencedColumnName = "workflow_instance_id", insertable = false, updatable = false),
@JoinColumn(name = "workActionClass.role_class_id", referencedColumnName = "role_class_id", insertable = false, updatable = false)
})
private WorkflowInstancePlayer player;
Run Code Online (Sandbox Code Playgroud)
workflowInstancePlayer是基于workflow_instance_id …
我正在尝试使用hibernate criteriabuilder加入4个表.
下面分别是表..`
@Entity
public class BuildDetails {
@Id
private long id;
@Column
private String buildNumber;
@Column
private String buildDuration;
@Column
private String projectName;
}
@Entity
public class CodeQualityDetails{
@Id
private long id;
@Column
private String codeHealth;
@ManyToOne
private BuildDetails build; //columnName=buildNum
}
@Entity
public class DeploymentDetails{
@Id
private Long id;
@Column
private String deployedEnv;
@ManyToOne
private BuildDetails build; //columnName=buildNum
}
@Entity
public class TestDetails{
@Id
private Long id;
@Column
private String testStatus;
@ManyToOne
private BuildDetails build; //columnName=buildNum
}
Run Code Online (Sandbox Code Playgroud)
在这4个表中,我想为MySQL执行以下sql脚本: …
我需要知道如何使用bag标签,它的目的是什么?
假设我们有3个Entities对象类:
class Parent {
String name;
List<Child> children;
}
class Child {
String name;
Parent parent;
}
class Toy {
String name;
Child child;
}
Run Code Online (Sandbox Code Playgroud)
如何使用JPA2.x(或hibernate)注释:
我正在使用Hibernate 4.3.5和mysql 5.1.30.
谢谢
我需要配置hibernate以避免创建重复的行,(尽管该行存在它会创建一个新的行,并且因为只设置了一个字段,所以将所有其余字段设置为NULL)
可以说我有一排如下
id des index age
1 MyName 2 23
Run Code Online (Sandbox Code Playgroud)
虽然我只是将MyName设置为des并且它已经存在于Name表中,但是hibernate会创建一个新行,如下所示
id des index age
1 MyName 2 23
2 MyName Null Null << new row with null values will be created
rather than updating the previous one
Run Code Online (Sandbox Code Playgroud)
当我想要sa.所以我在我的类中添加了以下注释,但是它越过了Entity和dynamicUpdate.
@org.hibernate.annotations.Entity(
dynamicUpdate = true
)
Run Code Online (Sandbox Code Playgroud)
我也使用@DynamicUpdate过,虽然hibernate接受它但我仍然遇到同样的问题.
有没有其他方法可以做到这一点?我的hibernate版本如下
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.1.Final</version>
<type>jar</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
*基于Ray的评论自爆,通过为子类的Id分配值,它可以正常工作,但如果我没有ID怎么样?我必须先做一个选择才能找到id吗?是否有任何方法强制hibernate基于child class rahter的值自动执行r而不是单独选择查找id?*
User.Java
....
import org.hibernate.annotations.DynamicUpdate;
@Entity
@Table(name = "user")
@DynamicUpdate
public class User implements Serializable {
private int ID;
private Name name;
private …Run Code Online (Sandbox Code Playgroud) hibernate updates hibernate-mapping java-ee hibernate-annotations
1 2:select(table.*)/(all column)没问题
String sql = "select t_student.* from t_student";
//String sql = "select t_student.id,t_student.name,... from t_student"; //select all column
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Student.class);//or query.addEntity("alias", Student.class);
//query.list();[Student@..., Student@..., Student@...]
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP); //or other transformer
query.list(); //[{Student(or alias)=Student@...},{Student=Student@...}]
Run Code Online (Sandbox Code Playgroud)
3:选择一些列(不是全部),是错误
String sql = "select t_student.id,t_student.name.t_student.sex from t_student";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Student.class);
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
query.list(); //Exception:invalid column/no column
Run Code Online (Sandbox Code Playgroud)
我希望"3"正常工作,并将结果映射到Student.class.
喜欢:学生[id =?,name =?,sex =?,(其他字段为null /默认)]
我不知道这个错误,请帮帮我!
我在Hibernate源代码中注意到,ManyToOne映射的默认FetchType是EAGER.而OnetoMany映射的默认加载类型是Lazy.这背后的具体原因是什么?