[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Mysterios persistence problem
broneo
do-not-reply at jboss.com
Wed Sep 12 11:15:12 EDT 2007
Hello,
i`m having an mysterios problem with my 3tier application.
I hope someone can give me a hint cause i'm really getting nuts.
The problem:
I have two tables in an oneToOne relationship.
In my application is a mask which needs values from both tables.
So lookup the first entityObject from the database and then call it`s
method to get the second one.
In a second mask i can create these objects.
The saving works fine and all the data is written correctly into the tables.
When i do the described lookup on the data i get the first object but the
function which should return the related object always returns NULL.
The data in the tables is as far as i can tell correct.
The mysterios about this thing is that data which i write per hand into the
database is return correctly.
The problem occurs only if the data was entered with my application.
I tested it and even if i enter the data written by the application exactly with
sqlplus it works only with the second way.
I hope it is clear what`s my problem.
The tables in Oracle 10:create table campaign_context (
| campaign_context_id number,
| campaign_name varchar2(30),
| market_id number,
| brand_name varchar2(30),
| active number(1),
| description varchar2(2047),
| campaign_id number
| )
|
| create table campaign (
| campaign_id number,
| campaign_context_id number,
| campaign_name varchar2(30),
| campaign_type varchar2(30),
| summary_flag varchar2(30),
| start_date date,
| end_date date,
| external_id number,
| username varchar2(30),
| password varchar2(30),
| service varchar2(30),
| description varchar2(2047),
| scheduler_id number
| )
|
| CREATE SEQUENCE campaign_context_sequence
| START WITH 1
| INCREMENT BY 1
|
| CREATE SEQUENCE campaign_sequence
| START WITH 1
| INCREMENT BY 1
|
| ALTER TABLE campaign
| add CONSTRAINT campaign_pk PRIMARY KEY (campaign_id)
|
| ALTER TABLE campaign_context
| add CONSTRAINT campaign_context PRIMARY KEY (campaign_context_id)
|
| ALTER TABLE campaign_context
| add CONSTRAINT campaign_context_campaign_fk FOREIGN KEY (campaign_id) REFERENCES campaign(campaign_id)
|
Source code:
Campaign_Context:@Entity
| @Table(name = "CAMPAIGN_CONTEXT")
| @SequenceGenerator(name = "campaign_context_sequence", sequenceName = "campaign_context_sequence")
| @NamedQueries({@NamedQuery(name = "CampaignContext.findByCampaignContextId", query = "SELECT c FROM CampaignContext c WHERE c.campaignContextId = :campaignContextId"), @NamedQuery(name = "CampaignContext.findByCampaignName", query = "SELECT c FROM CampaignContext c WHERE c.campaignName = :campaignName"), @NamedQuery(name = "CampaignContext.findByBrandName", query = "SELECT c FROM CampaignContext c WHERE c.brandName = :brandName"), @NamedQuery(name = "CampaignContext.findByActive", query = "SELECT c FROM CampaignContext c WHERE c.active = :active"), @NamedQuery(name = "CampaignContext.findByDescription", query = "SELECT c FROM CampaignContext c WHERE c.description = :description")})
| public class CampaignContext implements Serializable {
| @Id
| @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "campaign_context_sequence")
| @Column(name = "CAMPAIGN_CONTEXT_ID", nullable = false)
| private Integer campaignContextId;
| @Column(name = "CAMPAIGN_NAME")
| private String campaignName;
| @Column(name = "BRAND_NAME")
| private String brandName;
| @Column(name = "ACTIVE")
| private Short active;
| @Column(name = "DESCRIPTION")
| private String description;
| @Column(name = "MARKET_ID")
| private Integer marketId;
| @JoinColumn(name = "CUSTOMER_ID", referencedColumnName = "CUSTOMER_ID")
| @ManyToOne
| private Customer customerId;
| @OneToOne(cascade={CascadeType.REMOVE})
| @JoinColumn(name="CAMPAIGN_ID", referencedColumnName = "CAMPAIGN_ID")
| private Campaign campaign;
|
Campaign:@Entity
| @Table(name = "CAMPAIGN")
| @SequenceGenerator(name = "campaign_sequence", sequenceName = "campaign_sequence")
| @NamedQueries({@NamedQuery(name = "Campaign.findByCampaignId", query = "SELECT c FROM Campaign c WHERE c.campaignId = :campaignId"), @NamedQuery(name = "Campaign.findByCampaignName", query = "SELECT c FROM Campaign c WHERE c.campaignName = :campaignName"), @NamedQuery(name = "Campaign.findByCampaignType", query = "SELECT c FROM Campaign c WHERE c.campaignType = :campaignType"), @NamedQuery(name = "Campaign.findBySummaryFlag", query = "SELECT c FROM Campaign c WHERE c.summaryFlag = :summaryFlag"), @NamedQuery(name = "Campaign.findByStartDate", query = "SELECT c FROM Campaign c WHERE c.startDate = :startDate"), @NamedQuery(name = "Campaign.findByEndDate", query = "SELECT c FROM Campaign c WHERE c.endDate = :endDate"), @NamedQuery(name = "Campaign.findByExternalId", query = "SELECT c FROM Campaign c WHERE c.externalId = :externalId"), @NamedQuery(name = "Campaign.findByUsername", query = "SELECT c FROM Campaign c WHERE c.username = :username"), @NamedQuery(name = "Campaign.findByPassword", query = "SELECT c FROM Campaign c WHERE c.password = :password"), @NamedQuery(name = "Campaign.findByService", query = "SELECT c FROM Campaign c WHERE c.service = :service"), @NamedQuery(name = "Campaign.findByDescription", query = "SELECT c FROM Campaign c WHERE c.description = :description")})
| public class Campaign implements Serializable {
| @Id
| @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "campaign_sequence")
| @Column(name = "CAMPAIGN_ID", nullable = false)
| private Integer campaignId;
| @Column(name = "CAMPAIGN_NAME")
| private String campaignName;
| @Column(name = "CAMPAIGN_TYPE")
| private String campaignType;
| @Column(name = "SUMMARY_FLAG")
| private String summaryFlag;
| @Column(name = "START_DATE")
| @Temporal(TemporalType.DATE)
| private Date startDate;
| @Column(name = "END_DATE")
| @Temporal(TemporalType.DATE)
| private Date endDate;
| @Column(name = "EXTERNAL_ID")
| private BigInteger externalId;
| @Column(name = "USERNAME")
| private String username;
| @Column(name = "PASSWORD")
| private String password;
| @Column(name = "SERVICE")
| private String service;
| @Column(name = "DESCRIPTION")
| private String description;
| @OneToOne(cascade={CascadeType.ALL})
| @JoinColumn(name="SCHEDULER_ID", referencedColumnName = "SCHEDULER_ID")
| private Scheduler scheduler;
| @OneToOne(cascade={CascadeType.REMOVE})
| @JoinColumn(name="CAMPAIGN_ID", referencedColumnName = "CAMPAIGN_ID")
| private CampaignContext campaignContext;
|
The error occurs in the second line:campaign = bean.getCampaign(id);
| campaignContext = campaign.getCampaignContext();
|
I hope someone understands my problem and can give me a hint.
Thanks in advance
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4083510#4083510
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4083510
More information about the jboss-user
mailing list