[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Mapping relationship where database ID's are different forma

david.spark do-not-reply at jboss.com
Fri Oct 19 06:09:22 EDT 2007


I'm trying to map a OneToOne relationship in a legacy database. The problem I have is that I keep getting the following error:

javax.persistence.PersistenceException: org.hibernate.HibernateException: Wrong column type: LocationID, expected: tinyint
  | 	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:737)
  | 	at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127)
  | 	at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:246)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)...

My entity beans are setup as follows:
@Entity
  | @Table(name="tblAccountManager")
  | public class AccountManager implements Serializable {
  | 
  | ...
  | 
  | 	@OneToOne
  | 	@JoinColumn(name="LocationID")
  | 	private Branch branch;

@Entity
  | @Table(name="web_location")
  | @Name("Branch")
  | public class Branch implements Serializable {
  | 
  | 	private static final long serialVersionUID = -7280892867401735383L;
  | 
  | 	@Id @GeneratedValue
  | 	@Column(name = "Loc_ID")
  | 	@org.hibernate.annotations.Type(type = "custom.hibernate.IntegerToByteUserType")
  | 	private Integer id;

I guess the problem is that in the database tblAccountManager.LocationID is an int(11) where as web_location.Loc_ID is a tinyint(3). Is there any way to map this setup with annotations and without changing the database?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4096895#4096895

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4096895



More information about the jboss-user mailing list